mirror of
https://github.com/BlueWallet/BlueWallet.git
synced 2024-11-19 01:40:12 +01:00
ADD: Script to remove a passed key from all locale JSON files
This commit is contained in:
parent
fb80ca5560
commit
c5c0a4d30a
87
scripts/remove-loc-key.sh
Executable file
87
scripts/remove-loc-key.sh
Executable file
@ -0,0 +1,87 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Check if a nested key path is provided
|
||||
if [ -z "$1" ]; then
|
||||
echo "Usage: $0 nested_key"
|
||||
echo "Example: $0 autofill_word.error"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
NESTED_KEY=$1
|
||||
IFS='.' read -r -a KEYS <<< "$NESTED_KEY"
|
||||
|
||||
# Define the potential directories containing JSON files
|
||||
JSON_DIR1="../loc/"
|
||||
JSON_DIR2="loc/"
|
||||
|
||||
# Check which directory exists and use it
|
||||
if [ -d "$JSON_DIR1" ]; then
|
||||
JSON_DIR="$JSON_DIR1"
|
||||
elif [ -d "$JSON_DIR2" ]; then
|
||||
JSON_DIR="$JSON_DIR2"
|
||||
else
|
||||
echo "Neither $JSON_DIR1 nor $JSON_DIR2 exists. Exiting."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Function to remove the nested key from a JSON file
|
||||
remove_nested_key_with_awk() {
|
||||
local file=$1
|
||||
|
||||
awk -v keys="${KEYS[*]}" '
|
||||
BEGIN {
|
||||
split(keys, k, " ");
|
||||
key_count = length(k);
|
||||
skip = 0;
|
||||
match_count = 0;
|
||||
brace_count = 0;
|
||||
delete_line = 0
|
||||
}
|
||||
{
|
||||
if (match_count < key_count && $0 ~ "\""k[match_count+1]"\" *:") {
|
||||
match_count++;
|
||||
if (match_count == key_count) {
|
||||
skip = 1;
|
||||
delete_line = NR;
|
||||
if ($0 ~ /{/) {
|
||||
brace_count = 1;
|
||||
} else {
|
||||
brace_count = 0;
|
||||
}
|
||||
}
|
||||
} else if (match_count < key_count && $0 ~ /{/) {
|
||||
brace_count++;
|
||||
} else if (match_count < key_count && $0 ~ /}/) {
|
||||
brace_count--;
|
||||
if (brace_count == 0) {
|
||||
match_count = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (skip && $0 ~ /{/) {
|
||||
brace_count++;
|
||||
}
|
||||
if (skip && $0 ~ /}/) {
|
||||
brace_count--;
|
||||
}
|
||||
if (skip && brace_count == 0) {
|
||||
skip = 0;
|
||||
if (delete_line > 0) {
|
||||
next;
|
||||
}
|
||||
}
|
||||
if (skip == 0) {
|
||||
print $0;
|
||||
}
|
||||
}' "$file" > "$file.tmp" && mv "$file.tmp" "$file"
|
||||
}
|
||||
|
||||
# Iterate over all JSON files in the chosen directory
|
||||
for file in "$JSON_DIR"*.json; do
|
||||
if [ -f "$file" ]; then
|
||||
echo "Processing $file..."
|
||||
remove_nested_key_with_awk "$file"
|
||||
fi
|
||||
done
|
||||
|
||||
echo "Done."
|
Loading…
Reference in New Issue
Block a user