From 6161d9969be6c957adf61180a2ebb8c91c8607f9 Mon Sep 17 00:00:00 2001 From: Mike Delago <32778141+michaeldelago@users.noreply.github.com> Date: Tue, 5 Nov 2024 10:40:41 -0500 Subject: [PATCH] fix(CI/SQL import): don't use octal (#20449) --- apps/ci/ci-pending-sql.sh | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/apps/ci/ci-pending-sql.sh b/apps/ci/ci-pending-sql.sh index ef2d32327..3ab687963 100644 --- a/apps/ci/ci-pending-sql.sh +++ b/apps/ci/ci-pending-sql.sh @@ -2,20 +2,28 @@ set -euo pipefail -CURRENT_PATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +CURRENT_PATH="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" source "$CURRENT_PATH/../bash_shared/includes.sh" UPDATES_PATH="$AC_PATH_ROOT/data/sql/updates" - # get_next_index "data/sql/updates/db_world/2024_10_14_22.sql" # => 23 # get_next_index "" # => 00 function get_next_index() { if [[ -n "$1" ]]; then - PREV_COUNT="$(basename "$1" | cut -f4 -d_ | cut -f1 -d\.)" + # PREV_COUNT should be a non-zero padded number + PREV_COUNT="$( + # grabs the filename of the first argument, removes ".sql" suffix. + basename "$1" .sql | + # get the last number + cut -f4 -d_ | + # retrieve the last number, without zero padding + grep -oE "[1-9][0-9]*$" + )" + printf '%02d' "$((PREV_COUNT + 1))" else echo "00" @@ -40,16 +48,15 @@ function import() { # Get latest SQL file applied to this database, today. This could be empty. LATEST_UPDATE_TODAY="$(find "$UPDATES_DIR" -iname "$TODAY*.sql" | sort -h | tail -n 1)" - for entry in "$PENDING_PATH"/*.sql - do + for entry in "$PENDING_PATH"/*.sql; do if [[ -f "$entry" ]]; then INDEX="$(get_next_index "$LATEST_UPDATE_TODAY")" OUTPUT_FILE="${UPDATES_DIR}/${TODAY}_${INDEX}.sql" # ensure a note is added as a header comment - echo "-- DB update $(basename "$LATEST_UPDATE" .sql) -> $(basename "$OUTPUT_FILE" .sql)" > "$OUTPUT_FILE" + echo "-- DB update $(basename "$LATEST_UPDATE" .sql) -> $(basename "$OUTPUT_FILE" .sql)" >"$OUTPUT_FILE" # fill in the SQL contents under that - cat "$entry" >> "$OUTPUT_FILE" + cat "$entry" >>"$OUTPUT_FILE" # remove the unneeded file rm -f "$entry" # set the newest file to the file we just moved