diff --git a/scripts/new-data-fix.sh b/scripts/new-data-fix.sh new file mode 100755 index 0000000..a54b571 --- /dev/null +++ b/scripts/new-data-fix.sh @@ -0,0 +1,62 @@ +#!/usr/bin/env bash +set -euo pipefail + +to_slug() { + local raw="$1" + echo "$raw" | tr '[:upper:]' '[:lower:]' | sed -E 's/[^a-z0-9]+/_/g' | sed -E 's/^_+|_+$//g' +} + +format_yyyymmdd() { + date '+%Y%m%d' +} + +main() { + local raw_name="${1:-}" + local slug + slug=$(to_slug "$raw_name") + + if [[ -z "$slug" ]]; then + echo "usage: $0 " >&2 + exit 1 + fi + + local id + id="$(format_yyyymmdd)_${slug}" + local dir + dir="$(pwd)/internal/database/fixes" + local file_path + file_path="${dir}/${id}.go" + + mkdir -p "$dir" + + if [[ -f "$file_path" ]]; then + echo "data fix already exists: ${file_path}" >&2 + exit 1 + fi + + cat > "$file_path" <