diff options
| author | Joey Hess <joey@kitenet.net> | 2014-11-15 13:46:53 -0400 |
|---|---|---|
| committer | Joey Hess <joey@kitenet.net> | 2014-11-15 13:46:53 -0400 |
| commit | beb905be9231a903afd2e2228e89e7e047384ea7 (patch) | |
| tree | 543373fadb06aba5211f678695f8ab2b743f4c60 /src/Propellor/Property/Obnam.hs | |
| parent | 90a982fcb35e35fa2344003202b40192dc13fab4 (diff) | |
| parent | 269996e25d8f5481024f472a57debfd51dfcc703 (diff) | |
Merge branch 'joeyconfig'
Conflicts:
privdata.joey/keyring.gpg
privdata.joey/privdata.gpg
Diffstat (limited to 'src/Propellor/Property/Obnam.hs')
| -rw-r--r-- | src/Propellor/Property/Obnam.hs | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/src/Propellor/Property/Obnam.hs b/src/Propellor/Property/Obnam.hs index 1e7c2c25..e18ca3f9 100644 --- a/src/Propellor/Property/Obnam.hs +++ b/src/Propellor/Property/Obnam.hs @@ -3,6 +3,7 @@ module Propellor.Property.Obnam where import Propellor import qualified Propellor.Property.Apt as Apt import qualified Propellor.Property.Cron as Cron +import qualified Propellor.Property.Gpg as Gpg import Utility.SafeCommand import Data.List @@ -31,15 +32,24 @@ data NumClients = OnlyClient | MultipleClients -- -- > & Obnam.backup "/srv/git" "33 3 * * *" -- > [ "--repository=sftp://2318@usw-s002.rsync.net/~/mygitrepos.obnam" --- > , "--encrypt-with=1B169BE1" -- > ] Obnam.OnlyClient --- > `requires` Gpg.keyImported "1B169BE1" "root" -- > `requires` Ssh.keyImported SshRsa "root" (Context hostname) -- -- How awesome is that? backup :: FilePath -> Cron.CronTimes -> [ObnamParam] -> NumClients -> Property -backup dir crontimes params numclients = backup' dir crontimes params numclients - `requires` restored dir params +backup dir crontimes params numclients = + backup' dir crontimes params numclients + `requires` restored dir params + +-- | Like backup, but the specified gpg key id is used to encrypt +-- the repository. +-- +-- The gpg secret key will be automatically imported +-- into root's keyring using Propellor.Property.Gpg.keyImported +backupEncrypted :: FilePath -> Cron.CronTimes -> [ObnamParam] -> NumClients -> Gpg.GpgKeyId -> Property +backupEncrypted dir crontimes params numclients keyid = + backup dir crontimes (("--encrypt-with=" ++ keyid):params) numclients + `requires` Gpg.keyImported keyid "root" -- | Does a backup, but does not automatically restore. backup' :: FilePath -> Cron.CronTimes -> [ObnamParam] -> NumClients -> Property |
