#!/usr/bin/env bb (require '[babashka.tasks :as tasks] '[dda.backup.core :as bc] '[dda.backup.config :as cfg] '[dda.backup.restic :as rc] '[dda.backup.postgresql :as pg] '[dda.backup.backup :as bak] '[dda.backup.restore :as rs]) (def config (cfg/read-config "/usr/local/bin/config.edn")) (def file-pw-change-config (merge (:file-config config) {:new-password-file (bc/env-or-file "RESTIC_NEW_PASSWORD_FILE")})) (defn prepare! [] (tasks/shell "mkdir" "-p" "/var/backups/") (spit "/var/backups/file" "I was here") (tasks/shell "mkdir" "-p" "/var/restore")) (defn restic-repo-init! [] (rc/init! (:file-config config)) (rc/init! (merge (:db-config config) (:dry-run config)))) (defn restic-backup! [] (bak/backup-file! (:file-config config)) (bak/backup-db! (merge (:db-config config) (:dry-run config)))) (defn list-snapshots! [] (rc/list-snapshots! (:file-config config)) (rc/list-snapshots! (merge (:db-config config) (:dry-run config)))) (defn restic-restore! [] (pg/drop-create-db! (merge (:db-config config) (:dry-run config))) (rs/restore-db! (merge (:db-config config) (:dry-run config))) (rs/restore-file! (merge (:file-restore-config config) (:dry-run config)))) (defn change-password! [] (println "change-password!") (rc/change-password! file-pw-change-config)) (prepare!) (restic-repo-init!) (restic-backup!) (list-snapshots!) (restic-restore!) (change-password!)