summaryrefslogtreecommitdiff
path: root/Propellor/Property
diff options
context:
space:
mode:
authorJoey Hess2014-04-17 19:32:10 -0400
committerJoey Hess2014-04-17 19:32:10 -0400
commitecf10abc478fefe239d469c2f03f05583ed4782b (patch)
tree0e397292539937cddffe423ceddb8a70bfceedd5 /Propellor/Property
parentd3e6b42156a0b1e0a40cdf8862120a43da72a91d (diff)
flock local directory to prevent multiple obnams stacking up
Diffstat (limited to 'Propellor/Property')
-rw-r--r--Propellor/Property/Obnam.hs3
1 files changed, 2 insertions, 1 deletions
diff --git a/Propellor/Property/Obnam.hs b/Propellor/Property/Obnam.hs
index 00e0bbef..1e861588 100644
--- a/Propellor/Property/Obnam.hs
+++ b/Propellor/Property/Obnam.hs
@@ -46,7 +46,7 @@ backup dir crontimes params numclients = cronjob `describe` desc
where
desc = dir ++ " backed up by obnam"
cronjob = Cron.niceJob ("obnam_backup" ++ dir) crontimes "root" "/" $
- intercalate ";" $ catMaybes
+ intercalate ";" $ map flockcmd $ catMaybes
[ if numclients == OnlyClient
then Just $ unwords $
[ "obnam"
@@ -59,6 +59,7 @@ backup dir crontimes params numclients = cronjob `describe` desc
, shellEscape dir
] ++ map shellEscape params
]
+ flockcmd cmd = "flock -n " ++ shellEscape dir ++ " " ++ cmd
-- | Restores a directory from an obnam backup.
--