diff --git a/aurora/aurora.sh b/aurora/aurora.sh index b1e6268..11d9083 100644 --- a/aurora/aurora.sh +++ b/aurora/aurora.sh @@ -1,5 +1,5 @@ #!/bin/sh -# Version: 1.1.0 +# Version: 1.2.0 # Exit immediately if a command exits with a non-zero status. set -e @@ -9,7 +9,7 @@ SCRIPT_DIR=$(dirname "$0") CONFIG_FILE="${SCRIPT_DIR}/aurora.conf" if [ ! -f "$CONFIG_FILE" ]; then - echo "Error: Configuration file not found at ${CONFIG_FILE}" + echo "Error: Configuration file not found at ${CONFIG_FILE}" >&2 exit 1 fi # shellcheck source=aurora.conf @@ -19,15 +19,13 @@ fi TIMESTAMP=$(date "+%Y-%m-%d %H:%M:%S") AURORA="${SCHEMA}_AURORA" AURORA_TEMP_DIR="${BACKUP_DIR}/${AURORA}" -LOGFILE="${SCRIPT_ROOT}/aurora.log" -temp_compnyname=${SCHEMA#SBO_} # Remove SBO_ prefix -COMPNYNAME=${temp_compnyname%_PROD} # Remove _PROD suffix if it exists +COMPNYNAME="${SCHEMA#SBO_}" +[[ "$COMPNYNAME" == *_PROD ]] && COMPNYNAME="${COMPNYNAME%_PROD}" # Remove _PROD suffix if it exists # === FUNCTIONS === -log() { echo "$(date +"%Y-%m-%d %H:%M:%S") - $1" | tee -a "$LOGFILE"; } run_sql() { - log "Executing: $1" + echo "Executing: $1" "$HDBSQL" -U "${BACKOP_USER}" "$1" >/dev/null } @@ -37,86 +35,73 @@ show_info() { echo "Target Schema User: ${AURORA_SCHEMA_USER}" echo "Company Name: ${COMPNYNAME}" echo "Export Directory: ${AURORA_TEMP_DIR}" - echo "Log File: ${LOGFILE}" } usage() { - echo "Usage: $0 [new | complete | info]" - echo " new : Export, import, and rename. (No privileges or post-scripts)" - echo " complete : Drop, export, import, grant privileges, and run post-scripts." - echo " info : Show configuration information." + echo "Usage: $0 [--info]" + echo " --info : Show configuration information." + echo " (No argument) : Drop, export, import, grant privileges, and run post-scripts." } export_schema() { - log "Starting schema export for '${SCHEMA}'." + echo "Starting schema export for '${SCHEMA}'." mkdir -p "$AURORA_TEMP_DIR" run_sql "EXPORT \"${SCHEMA}\".\"*\" AS BINARY INTO '$AURORA_TEMP_DIR' WITH REPLACE;" - log "Schema export completed." + echo "Schema export completed." } import_and_rename() { - log "Starting import and rename to '${AURORA}'." + echo "Starting import and rename to '${AURORA}'." run_sql "IMPORT \"${SCHEMA}\".\"*\" FROM '$AURORA_TEMP_DIR' WITH RENAME SCHEMA \"${SCHEMA}\" TO \"${AURORA}\";" - log "Updating company name fields." - local update_sql=" + echo "Updating company name fields." + "$HDBSQL" -U "${BACKOP_USER}" -c ";" -I - </dev/null 2>&1 || log "Could not drop schema '${AURORA}'. It might not exist." - log "Old schema dropped." + echo "Dropping existing '${AURORA}' schema." + run_sql "DROP SCHEMA \"${AURORA}\" CASCADE;" 2>/dev/null || echo "Could not drop schema '${AURORA}'. It might not exist." >&2 + echo "Old schema dropped." } run_post_scripts() { - log "Running post-import SQL scripts: ${POST_SQL}" + echo "Running post-import SQL scripts: ${POST_SQL}" for sql_file in $POST_SQL; do - log "Running script: ${sql_file}" + echo "Running script: ${sql_file}" "$HDBSQL" -U "${BACKOP_USER}" -I "${SCRIPT_ROOT}/${sql_file}" done - log "All post-import scripts completed." + echo "All post-import scripts completed." } # === SCRIPT EXECUTION === if [ $# -eq 0 ]; then - usage - exit 1 + echo "=== Starting 'complete' operation (default) ===" + drop_aurora_schema + export_schema + import_and_rename + grant_privileges + run_post_scripts + echo "=== 'Complete' operation finished successfully ===" + exit 0 fi case "$1" in - new) - log "=== Starting 'new' operation ===" - export_schema - import_and_rename - log "=== 'New' operation finished successfully ===" - ;; - complete) - log "=== Starting 'complete' operation ===" - drop_aurora_schema - export_schema - import_and_rename - grant_privileges - run_post_scripts - log "=== 'Complete' operation finished successfully ===" - ;; - info) + --info) show_info ;; *) - echo "Error: Invalid argument '$1'." + echo "Error: Invalid argument '$1'." >&2 usage exit 1 ;; diff --git a/packages.conf b/packages.conf index f4e1957..367efad 100644 --- a/packages.conf +++ b/packages.conf @@ -7,7 +7,7 @@ declare -A SCRIPT_PACKAGES # The version should match the "# Version: x.x.x" line in the main script file. -SCRIPT_PACKAGES["Aurora Suite"]="1.1.0|https://git.technopunk.space/tomi/Scripts/raw/branch/main/aurora/aurora.sh https://git.technopunk.space/tomi/Scripts/raw/branch/main/aurora/aurora.conf" +SCRIPT_PACKAGES["Aurora Suite"]="1.2.0|https://git.technopunk.space/tomi/Scripts/raw/branch/main/aurora/aurora.sh https://git.technopunk.space/tomi/Scripts/raw/branch/main/aurora/aurora.conf" SCRIPT_PACKAGES["Backup Suite"]="1.0.5|https://git.technopunk.space/tomi/Scripts/raw/branch/main/backup/backup.sh https://git.technopunk.space/tomi/Scripts/raw/branch/main/backup/backup.conf" SCRIPT_PACKAGES["Monitor Suite"]="1.0.5|https://git.technopunk.space/tomi/Scripts/raw/branch/main/monitor/monitor.sh https://git.technopunk.space/tomi/Scripts/raw/branch/main/monitor/monitor.conf" SCRIPT_PACKAGES["Key Manager"]="1.2.1|https://git.technopunk.space/tomi/Scripts/raw/branch/main/hdb_keymanager.sh"