dda-backup/src/dda/backup/backup.clj

31 lines
942 B
Clojure
Raw Normal View History

2024-08-16 14:29:19 +00:00
(ns dda.backup.backup
(:require
[orchestra.core :refer [defn-spec]]
[clojure.spec.alpha :as s]
2024-08-16 16:10:50 +00:00
[dda.backup.core.domain :as cd]
2024-08-16 15:36:28 +00:00
[dda.backup.backup.domain :as domain]
2024-08-16 16:10:50 +00:00
[dda.backup.core :as core]
2024-08-16 15:36:28 +00:00
[dda.backup.management :as mgm]
[dda.backup.infrastructure :as i]))
(s/def ::config
2024-08-20 05:55:54 +00:00
(s/keys :req-un [::domain/files
::cd/restic-repository
::cd/backup-path]
:opt-un [::cd/certificate-file
::cd/password-file
::cd/days-to-keep
::cd/months-to-keep
::cd/directory
::cd/dry-run
::cd/debug]))
2024-08-16 15:36:28 +00:00
(defn-spec backup! nil?
2024-08-16 17:13:11 +00:00
[config ::config]
2024-08-16 15:36:28 +00:00
(let [config-w-defaults (merge core/default config)]
(mgm/unlock! config-w-defaults)
(i/execute!
2024-08-16 17:13:11 +00:00
(domain/backup-files-command config-w-defaults)
2024-08-16 15:36:28 +00:00
config-w-defaults)
(mgm/forget! config-w-defaults)
))