update.sh 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #!/usr/bin/env bash
  2. set -e
  3. set -o pipefail
  4. ENDPOINT="https://sirekanian.github.io/warmongr"
  5. SCHEMAS="app/schemas/com.sirekanian.acf.data.local.Database"
  6. SCHEMA=$(find "$SCHEMAS" -name "*.json" | sort -V | tail -1)
  7. # transform meta.json to csv
  8. wget -qO- "$ENDPOINT/meta.json" |
  9. jq -r 'to_entries[] | [.key, .value] | @csv' \
  10. >"app/schemas/MetaEntity.csv"
  11. # transform data.json to csv
  12. wget --header="Accept-Encoding: gzip" -qO- "$ENDPOINT/data.json" | gunzip |
  13. jq -r 'map([.["0"],.["1"],.["4"],(.["5"] | join(" "))])[] | @csv' \
  14. >"app/schemas/WarmongerEntity.csv"
  15. # transform tags.json to csv
  16. wget -qO- "$ENDPOINT/tags.json" |
  17. jq -r 'map([.["id"],.["shortName"],.["ruShortName"]])[] | @csv' \
  18. >"app/schemas/TagEntity.csv"
  19. # transform index.json to csv
  20. wget -qO- "$ENDPOINT/index.json" |
  21. jq -r 'to_entries[] | [.key, .value] | @csv' \
  22. >"app/schemas/IndexEntity.csv"
  23. # copy setupQueries from schema
  24. jq -r ".database.setupQueries[]" "$SCHEMA" |
  25. sed 's/$/;/' \
  26. >app/schemas/init.sql
  27. for TABLE in MetaEntity WarmongerEntity TagEntity IndexEntity; do
  28. # copy createSql from schema
  29. jq -r ".database.entities[] | select(.tableName==\"$TABLE\") | .createSql" "$SCHEMA" |
  30. sed "s/\${TABLE_NAME}/$TABLE/" |
  31. sed 's/$/;/' \
  32. >>app/schemas/init.sql
  33. # generate import csv command
  34. echo ".import --csv app/schemas/$TABLE.csv $TABLE" \
  35. >>app/schemas/init.sql
  36. done
  37. # recreate pre-packaged database
  38. rm -f app/src/main/assets/warmongers.db
  39. sqlite3 app/src/main/assets/warmongers.db <app/schemas/init.sql
  40. # commit changes
  41. git add app/schemas/*.csv
  42. git add app/src/main/assets/warmongers.db
  43. git commit -m "updated pre-packaged database" || true