instance-sqlite 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. #!/usr/bin/env bash
  2. set -eu
  3. script_name=$0
  4. DB_BACKEND=$(echo $script_name | cut -d- -f2)
  5. export DB_BACKEND
  6. die() {
  7. echo >&2 "$@"
  8. exit 1
  9. }
  10. about() {
  11. die "usage: $script_name [ config-yaml | setup | dump <backup_file> | restore <backup_file> ]"
  12. }
  13. #shellcheck disable=SC1007
  14. THIS_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
  15. cd "${THIS_DIR}"/../../
  16. #shellcheck disable=SC1091
  17. . ./.environment.sh
  18. # you have not removed set -u above, have you?
  19. [ -z "${CONFIG_YAML-}" ] && die "\$CONFIG_YAML must be defined."
  20. # ---------------------------
  21. DATA_DIR=$(yq '.config_paths.data_dir' <"${CONFIG_YAML}")
  22. DB_FILE="${DATA_DIR}/crowdsec.db"
  23. config_yaml() {
  24. yq '
  25. .db_config.type="$DB_BACKEND" |
  26. .db_config.db_path="${DB_FILE}"
  27. ' -i "${CONFIG_YAML}"
  28. }
  29. [ $# -lt 1 ] && about
  30. case "$1" in
  31. config-yaml)
  32. ;;
  33. setup)
  34. ;;
  35. dump)
  36. [ $# -lt 2 ] && about
  37. backup_file="$2"
  38. # dirty fast cp. nothing should be accessing it right now, anyway.
  39. [ -f "${DB_FILE}" ] || die "missing file ${DB_FILE}"
  40. cp "${DB_FILE}" "$backup_file"
  41. ;;
  42. restore)
  43. [ $# -lt 2 ] && about
  44. backup_file="$2"
  45. [ -f "$backup_file" ] || die "missing file $backup_file"
  46. cp "$backup_file" "${DB_FILE}"
  47. ;;
  48. *)
  49. about
  50. ;;
  51. esac;