Implement cred_rot commands

This commit is contained in:
bom 2024-11-15 13:10:38 +01:00
parent 5c583fd72f
commit 4330173084

View file

@ -38,27 +38,34 @@
; Refer to "docs/CredentialRotation.md" for specifics
(defn-spec list-passwords-command ::cd/command
[config ::config]
(defn-spec base-command ::cd/command
[config ::config
command ::cd/command]
(let [{:keys [restic-repository password-file
certificate-file new-password-file]} config]
(into
[]
(concat ["restic" "-r" restic-repository "key" "list" "--json"]
(concat ["restic" "-r" restic-repository]
(cond
(some? certificate-file)
["--cacert" certificate-file]
(some? password-file)
["--password-file" password-file]
:else
[])))))
[])
command))))
(defn-spec add-new-password! nil?
[new-password-file ::new-password-file]
; TODO
)
(defn-spec list-passwords-command ::cd/command
[config ::config]
(base-command config ["key" "list" "--json"]))
(defn-spec replace-old-password! nil?
[]
; TODO
)
(defn-spec add-password-command ::cd/command
[config ::config]
(let [{:keys [new-password-file]} config]
(base-command config ["key" "add" "--new-password-file" new-password-file])))
(defn-spec remove-password-command ::cd/command
[config ::config
new-id ::id
old-id ::id]
(base-command config ["key" "remove" "--key-hint" new-id old-id]))