X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2FSQL%2FupdateSQLResource.sh;h=83a93669105e9934b2369da7043fcc9db67bab1f;hp=e5c99e46753a6d241333a8c832e2451355971c40;hb=3cf5c49e7753be48a994917fe898730add4292b1;hpb=e4fc79c07f5301ce2c7888e709ada0945b675c4f diff --git a/src/core/SQL/updateSQLResource.sh b/src/core/SQL/updateSQLResource.sh index e5c99e46..83a93669 100755 --- a/src/core/SQL/updateSQLResource.sh +++ b/src/core/SQL/updateSQLResource.sh @@ -29,18 +29,28 @@ cat > "$SQL_RES_FILE" < EOF -# In a subshell, change to the SQL directory so find output remains consistent, +# In a subshell, use C locale to sort consistently regardless of +# language, change to SQL directory so find output stays consistent, # then... # Find all files with a .sql ending... # | ...sort the results by version # | ...modify the beginning to change '.[...]' into ' ./SQL[...]' (add the directory path back) # ...and modify the end to add '[...]' # | ...append to the resource file. -(cd "$SCRIPT_DIR" ; find . -name "*.sql" | sort -t/ -k2,2 -k3n | sed -e "s/^./ .\/$SQL_DIR_NAME/g" -e "s/$/<\/file>/g" >> "$SQL_RES_FILE" ) +(export LC_ALL="C" ; cd "$SCRIPT_DIR" ; find . -name "*.sql" | sort --field-separator=/ --key=2,2 --key=4n | sed -e "s/^./ .\/$SQL_DIR_NAME/g" -e "s/$/<\/file>/g" >> "$SQL_RES_FILE" ) # Newer versions of sort support a "--version-sort" flag to naturally sort. # Unfortunately, some supported platforms don't yet have that version. -# For now, "-t/ -k2,2 -k3n" does -almost- the same thing (there's a difference -# when sorting periods versus underscores). +# For now, "--field-separator=/ --key=2,2 --key=4n" does -almost- the same +# thing (there's a difference when sorting periods versus underscores). +# +# Further explanation for sort command: +# --field-separator=/ +# > Separate fields by "/" +# --key=2,2 +# > Sort by the second field, i.e. "SQLite" or "Postgres" +# --key=4n +# > Sort by the fourth field using numeric comparison +# (e.g. the "##" in "SQL/[database]/versions/##") # Add the Qt resource footer cat >> "$SQL_RES_FILE" <