Files
proxmox/scripts/complete-ipfs-logo-next-steps.sh
defiQUG b3a8fe4496
Some checks failed
Deploy to Phoenix / deploy (push) Has been cancelled
chore: sync all changes to Gitea
- Config, docs, scripts, and backup manifests
- Submodule refs unchanged (m = modified content in submodules)

Made-with: Cursor
2026-03-02 11:37:34 -08:00

88 lines
3.4 KiB
Bash
Executable File

#!/usr/bin/env bash
# Complete next steps after IPFS logo wiring:
# 1. Run migration 0013 (update token logo_url in explorer DB)
# 2. Build token-aggregation (picks up new canonical-tokens IPFS URLs)
# 3. Validate token list schema
#
# Prerequisites: DATABASE_URL in smom-dbis-138/services/token-aggregation/.env (or root .env)
# Usage: ./scripts/complete-ipfs-logo-next-steps.sh
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
REPO_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
TA_DIR="$REPO_ROOT/smom-dbis-138/services/token-aggregation"
MIGRATION_0013="$REPO_ROOT/explorer-monorepo/backend/database/migrations/0013_update_token_logos_ipfs.up.sql"
log() { echo "[$(date +%H:%M:%S)] $*"; }
err() { echo "ERROR: $*" >&2; }
# Load env
[[ -f "$REPO_ROOT/.env" ]] && set -a && source "$REPO_ROOT/.env" && set +a
[[ -f "$TA_DIR/.env" ]] && set -a && source "$TA_DIR/.env" && set +a
DATABASE_URL="${DATABASE_URL:-}"
echo "=========================================="
echo "Complete IPFS Logo Next Steps"
echo "=========================================="
echo ""
# Step 1: Run migration 0013
log "Step 1: Running migration 0013 (update token logos to IPFS)..."
if [[ ! -f "$MIGRATION_0013" ]]; then
err "Migration file not found: $MIGRATION_0013"
exit 1
fi
if [[ -z "$DATABASE_URL" ]]; then
log " SKIP: DATABASE_URL not set (set in .env or smom-dbis-138/services/token-aggregation/.env)"
log " To run manually: psql \$DATABASE_URL -f $MIGRATION_0013"
else
if command -v psql &>/dev/null; then
if psql "$DATABASE_URL" -f "$MIGRATION_0013" 2>/dev/null; then
log " OK: Migration 0013 completed"
else
err " Migration 0013 failed (tokens table may not exist yet)"
log " Run when explorer DB is available: psql \$DATABASE_URL -f $MIGRATION_0013"
fi
else
log " SKIP: psql not found"
fi
fi
echo ""
# Step 2: Build token-aggregation
log "Step 2: Building token-aggregation..."
if [[ -d "$TA_DIR" ]]; then
(cd "$TA_DIR" && pnpm run build 2>/dev/null || npm run build 2>/dev/null) && log " OK: Built" || err " Build failed"
else
log " SKIP: token-aggregation dir not found"
fi
echo ""
# Step 3: Validate token list
log "Step 3: Validating token list schema..."
TOKEN_LISTS_DIR="${TOKEN_LISTS_DIR:-$REPO_ROOT/../token-lists}"
if [[ -d "$TOKEN_LISTS_DIR" ]] && [[ -f "$REPO_ROOT/token-lists/lists/dbis-138.tokenlist.json" ]]; then
(cd "$TOKEN_LISTS_DIR" && node -e "
const Ajv = require('ajv');
const addFormats = require('ajv-formats');
const schema = require('./src/tokenlist.schema.json');
const ajv = new Ajv({ allErrors: true });
addFormats(ajv);
const validate = ajv.compile(schema);
const list = require('$REPO_ROOT/token-lists/lists/dbis-138.tokenlist.json');
if (validate(list)) { console.log(' OK: Token list valid'); process.exit(0); }
console.error(' INVALID:', JSON.stringify(validate.errors, null, 2)); process.exit(1);
" 2>/dev/null) && log " OK: Schema valid" || log " SKIP: token-lists or ajv not available"
else
log " SKIP: token-lists not found (set TOKEN_LISTS_DIR or clone to ../token-lists)"
fi
echo ""
log "Done."
echo ""
echo "Next: Redeploy token-aggregation if running (systemctl restart token-aggregation)"
echo " Explorer will show new logos after migration 0013 is applied to its DB."