Auto sorting of locale files

This commit is contained in:
Jamie Curnow
2025-09-25 18:31:00 +10:00
parent e36c1b99a5
commit abdf8866e0
5 changed files with 100 additions and 59 deletions

View File

@@ -15,7 +15,7 @@ ENV SUPPRESS_NO_CONFIG_WARNING=1 \
RUN echo "fs.file-max = 65535" > /etc/sysctl.conf \
&& apt-get update \
&& apt-get install -y jq python3-pip logrotate \
&& apt-get install -y jq python3-pip logrotate moreutils \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*

View File

@@ -0,0 +1,36 @@
#!/bin/bash
set -e -o pipefail
DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "$DIR/../src" || exit 1
if ! command -v jq &> /dev/null; then
echo "jq could not be found, please install it to sort JSON files."
exit 1
fi
# iterate over all json files in the current directory
for file in *.json; do
if [[ -f "$file" ]]; then
if [[ ! -s "$file" ]]; then
echo "Skipping empty file $file"
continue
fi
if [ "$file" == "lang-list.json" ]; then
continue
fi
# get content of file before sorting
original_content=$(<"$file")
# compare with sorted content
sorted_content=$(jq --tab --sort-keys . "$file")
if [ "$original_content" == "$sorted_content" ]; then
echo "$file is already sorted"
continue
fi
echo "Sorting $file"
jq --tab --sort-keys . "$file" | sponge "$file"
fi
done

View File

@@ -1,10 +1,10 @@
{
"access.actions-title": {
"defaultMessage": "Access List #{id}"
},
"access.access-count": {
"defaultMessage": "{count} Rules"
},
"access.actions-title": {
"defaultMessage": "Access List #{id}"
},
"access.add": {
"defaultMessage": "Add Access List"
},
@@ -29,21 +29,21 @@
"action.disable": {
"defaultMessage": "Disable"
},
"action.enable": {
"defaultMessage": "Enable"
},
"action.edit": {
"defaultMessage": "Edit"
},
"action.enable": {
"defaultMessage": "Enable"
},
"action.permissions": {
"defaultMessage": "Permissions"
},
"auditlog.title": {
"defaultMessage": "Audit Log"
},
"action.view-details": {
"defaultMessage": "View Details"
},
"auditlog.title": {
"defaultMessage": "Audit Log"
},
"cancel": {
"defaultMessage": "Cancel"
},
@@ -65,9 +65,6 @@
"close": {
"defaultMessage": "Close"
},
"created-on": {
"defaultMessage": "Created: {date}"
},
"column.access": {
"defaultMessage": "Access"
},
@@ -113,30 +110,21 @@
"column.scheme": {
"defaultMessage": "Scheme"
},
"column.status": {
"defaultMessage": "Status"
"column.source": {
"defaultMessage": "Source"
},
"column.ssl": {
"defaultMessage": "SSL"
},
"column.source": {
"defaultMessage": "Source"
"column.status": {
"defaultMessage": "Status"
},
"created-on": {
"defaultMessage": "Created: {date}"
},
"dashboard.title": {
"defaultMessage": "Dashboard"
},
"dead-hosts.actions-title": {
"defaultMessage": "404 Host #{id}"
},
"dead-hosts.add": {
"defaultMessage": "Add 404 Host"
},
"dead-hosts.count": {
"defaultMessage": "{count} 404 Hosts"
},
"dead-hosts.empty": {
"defaultMessage": "There are no 404 Hosts"
},
"dead-host.delete.content": {
"defaultMessage": "Are you sure you want to delete this 404 host?"
},
@@ -149,6 +137,18 @@
"dead-host.new": {
"defaultMessage": "New 404 Host"
},
"dead-hosts.actions-title": {
"defaultMessage": "404 Host #{id}"
},
"dead-hosts.add": {
"defaultMessage": "Add 404 Host"
},
"dead-hosts.count": {
"defaultMessage": "{count} 404 Hosts"
},
"dead-hosts.empty": {
"defaultMessage": "There are no 404 Hosts"
},
"dead-hosts.title": {
"defaultMessage": "404 Hosts"
},
@@ -191,12 +191,12 @@
"empty-search": {
"defaultMessage": "No results found"
},
"empty-subtitle": {
"defaultMessage": "Why don't you create one?"
},
"enabled": {
"defaultMessage": "Enabled"
},
"error.passwords-must-match": {
"defaultMessage": "Passwords must match"
},
"error.invalid-auth": {
"defaultMessage": "Invalid email or password"
},
@@ -209,6 +209,9 @@
"error.max-domains": {
"defaultMessage": "Too many domains, max is {max}"
},
"error.passwords-must-match": {
"defaultMessage": "Passwords must match"
},
"error.required": {
"defaultMessage": "This is required"
},
@@ -218,15 +221,6 @@
"event.created-redirection-host": {
"defaultMessage": "Created Redirection Host"
},
"event.updated-redirection-host": {
"defaultMessage": "Updated Redirection Host"
},
"event.enabled-redirection-host": {
"defaultMessage": "Enabled Redirection Host"
},
"event.disabled-redirection-host": {
"defaultMessage": "Disabled Redirection Host"
},
"event.created-stream": {
"defaultMessage": "Created Stream"
},
@@ -245,27 +239,30 @@
"event.disabled-dead-host": {
"defaultMessage": "Disabled 404 Host"
},
"event.disabled-redirection-host": {
"defaultMessage": "Disabled Redirection Host"
},
"event.disabled-stream": {
"defaultMessage": "Disabled Stream"
},
"event.enabled-dead-host": {
"defaultMessage": "Enabled 404 Host"
},
"event.enabled-redirection-host": {
"defaultMessage": "Enabled Redirection Host"
},
"event.enabled-stream": {
"defaultMessage": "Enabled Stream"
},
"event.updated-redirection-host": {
"defaultMessage": "Updated Redirection Host"
},
"event.updated-user": {
"defaultMessage": "Updated User"
},
"footer.github-fork": {
"defaultMessage": "Fork me on Github"
},
"empty-subtitle": {
"defaultMessage": "Why don't you create one?"
},
"host.flags.title": {
"defaultMessage": "Options"
},
"host.flags.block-exploits": {
"defaultMessage": "Block Common Exploits"
},
@@ -275,6 +272,9 @@
"host.flags.protocols": {
"defaultMessage": "Protocols"
},
"host.flags.title": {
"defaultMessage": "Options"
},
"hosts.title": {
"defaultMessage": "Hosts"
},
@@ -335,6 +335,9 @@
"notification.stream-enabled": {
"defaultMessage": "Stream has been enabled"
},
"notification.success": {
"defaultMessage": "Success"
},
"notification.user-deleted": {
"defaultMessage": "User has been deleted"
},
@@ -347,9 +350,6 @@
"notification.user-saved": {
"defaultMessage": "User has been saved"
},
"notification.success": {
"defaultMessage": "Success"
},
"offline": {
"defaultMessage": "Offline"
},
@@ -401,11 +401,14 @@
"proxy-hosts.title": {
"defaultMessage": "Proxy Hosts"
},
"redirect-host.forward-domain": {
"defaultMessage": "Forward Domain"
},
"redirect-host.forward-scheme": {
"defaultMessage": "Scheme"
},
"redirect-host.forward-domain": {
"defaultMessage": "Forward Domain"
"redirection-host.new": {
"defaultMessage": "New Redirection Host"
},
"redirection-hosts.actions-title": {
"defaultMessage": "Redirection Host #{id}"
@@ -419,9 +422,6 @@
"redirection-hosts.empty": {
"defaultMessage": "There are no Redirection Hosts"
},
"redirection-host.new": {
"defaultMessage": "New Redirection Host"
},
"redirection-hosts.title": {
"defaultMessage": "Redirection Hosts"
},
@@ -497,12 +497,12 @@
"user.current-password": {
"defaultMessage": "Current Password"
},
"user.delete.title": {
"defaultMessage": "Delete User"
},
"user.delete.content": {
"defaultMessage": "Are you sure you want to delete this user?"
},
"user.delete.title": {
"defaultMessage": "Delete User"
},
"user.edit": {
"defaultMessage": "Edit User"
},

View File

@@ -19,6 +19,12 @@ export default defineConfig({
throw error;
}
console.log(stdout);
execFile("yarn", ["locale-sort"], (error, stdout, _stderr) => {
if (error) {
throw error;
}
console.log(stdout);
});
});
}
});

View File

@@ -5,7 +5,6 @@ DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
echo -e "${BLUE} ${CYAN}Building docker multiarch: ${YELLOW}${*}${RESET}"
DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "${DIR}/.." || exit 1
# determine commit if not already set