core: Remove redundant updateSchemaVersion() call
[quassel.git] / src / core / SQL / updateSQLResource.sh
index e5c99e4..dce3237 100755 (executable)
@@ -1,5 +1,5 @@
 #!/bin/bash
-# Copyright (C) 2005-2016 by the Quassel Project - devel@quassel-irc.org
+# Copyright (C) 2005-2019 by the Quassel Project - devel@quassel-irc.org
 # Licensed under GNU General Public License version 2, or (at your option)
 # version 3.
 #
@@ -7,9 +7,9 @@
 # folder.  It'll regenerate 'sql.qrc' for you.  If it fails, you can manually
 # edit the file, too; just follow the pattern already in there.
 #
-# NOTE: In most cases you must upgrade the database schema version to make a
+# NOTE: In many cases you must upgrade the database schema version to make a
 # change, which includes adding upgrade scripts and modifying existing setup
-# queries.  See 'upgradeSchema.sh' for details.
+# queries.  See 'README.md' for details.
 
 set -u # Bash - fail on undefined variable
 
@@ -29,18 +29,28 @@ cat > "$SQL_RES_FILE" <<EOF
 <qresource>
 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 '    <file>./SQL[...]' (add the directory path back)
 #   ...and modify the end to add '[...]</file>'
 # | ...append to the resource file.
-(cd "$SCRIPT_DIR" ; find . -name "*.sql" | sort -t/ -k2,2 -k3n | sed -e "s/^./    <file>.\/$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/^./    <file>.\/$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" <<EOF