85 lines
2.3 KiB
Bash
85 lines
2.3 KiB
Bash
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../../.." && pwd)"
|
|
|
|
if [[ "$PROJECT_ROOT" =~ ^/([a-zA-Z])/(.*) ]]; then
|
|
DRIVE_LETTER="${BASH_REMATCH[1]}"
|
|
PATH_REMAINDER="${BASH_REMATCH[2]}"
|
|
PROJECT_ROOT="${DRIVE_LETTER^^}:/${PATH_REMAINDER}"
|
|
fi
|
|
|
|
ACORE_JSON_PATH="$PROJECT_ROOT/acore.json"
|
|
DB_WORLD_UPDATE_DIR="$PROJECT_ROOT/data/sql/updates/db_world"
|
|
|
|
VERSION_LINE=$(grep '"version"' "$ACORE_JSON_PATH")
|
|
VERSION=$(echo "$VERSION_LINE" | sed -E 's/.*"version": *"([^"]+)".*/\1/')
|
|
|
|
# Parse version into parts
|
|
if [[ "$VERSION" =~ ^([0-9]+)\.([0-9]+)\.([0-9]+)(.*)$ ]]; then
|
|
MAJOR="${BASH_REMATCH[1]}"
|
|
SUFFIX="${BASH_REMATCH[4]}"
|
|
NEW_VERSION="$((MAJOR + 1)).0.0$SUFFIX"
|
|
|
|
# Replace version in file
|
|
sed -i.bak -E "s/(\"version\": *\")[^\"]+(\" *)/\1$NEW_VERSION\2/" "$ACORE_JSON_PATH"
|
|
rm -f "$ACORE_JSON_PATH.bak"
|
|
|
|
echo "✅ Version updated to $NEW_VERSION"
|
|
else
|
|
echo "Error: Could not parse version string: $VERSION"
|
|
exit 1
|
|
fi
|
|
|
|
# Extract the new major version from NEW_VERSION
|
|
if [[ "$NEW_VERSION" =~ ^([0-9]+)\. ]]; then
|
|
NEW_MAJOR="${BASH_REMATCH[1]}"
|
|
else
|
|
echo "Error: Unable to extract major version from $NEW_VERSION"
|
|
exit 1
|
|
fi
|
|
|
|
# Prepare SQL content
|
|
DB_VERSION_CONTENT="'ACDB 335.${NEW_MAJOR}-dev'"
|
|
SQL_QUERY="UPDATE \`version\` SET \`db_version\`=${DB_VERSION_CONTENT}, \`cache_id\`=${NEW_MAJOR} LIMIT 1;"
|
|
|
|
# Format date as yyyy_mm_dd
|
|
TODAY=$(date +%Y_%m_%d)
|
|
|
|
# Ensure directory exists
|
|
mkdir -p "$DB_WORLD_UPDATE_DIR"
|
|
|
|
# List existing files for today
|
|
existing_files=($(find "$DB_WORLD_UPDATE_DIR" -maxdepth 1 -type f -name "${TODAY}_*.sql" 2>/dev/null))
|
|
|
|
# Determine next xx counter
|
|
# Determine next xx
|
|
COUNTER="00"
|
|
if [ ${#existing_files[@]} -gt 0 ]; then
|
|
max=0
|
|
for file in "${existing_files[@]}"; do
|
|
basename=$(basename "$file")
|
|
if [[ "$basename" =~ ^${TODAY}_([0-9]{2})\.sql$ ]]; then
|
|
num=${BASH_REMATCH[1]}
|
|
if [[ "$num" =~ ^[0-9]+$ ]] && (( 10#$num > max )); then
|
|
max=$((10#$num))
|
|
fi
|
|
fi
|
|
done
|
|
COUNTER=$(printf "%02d" $((max + 1)))
|
|
fi
|
|
|
|
# Compose final file path
|
|
SQL_FILENAME="${TODAY}_${COUNTER}.sql"
|
|
SQL_FILE_PATH="$DB_WORLD_UPDATE_DIR/$SQL_FILENAME"
|
|
|
|
# Write to file
|
|
{
|
|
echo "-- Auto-generated by VersionUpdater.sh on $(date)"
|
|
echo "$SQL_QUERY"
|
|
} > "$SQL_FILE_PATH"
|
|
|
|
echo "✅ SQL file created at $SQL_FILE_PATH"
|