diff options
| author | Joey Hess <joey@kitenet.net> | 2014-04-02 18:36:42 -0400 |
|---|---|---|
| committer | Joey Hess <joey@kitenet.net> | 2014-04-02 18:36:42 -0400 |
| commit | cd10ceb976c38b2df0101a601022918852def4b3 (patch) | |
| tree | e69193ebc200e4027452d71fe6e0ca4e8d805486 | |
| parent | b456e8aedc3328dd30113b849a4b977c6543c63b (diff) | |
generalized git-annex autobuilder to not need a rsync password
| -rw-r--r-- | Propellor/Property/SiteSpecific/GitAnnexBuilder.hs | 20 | ||||
| -rw-r--r-- | config.hs | 2 |
2 files changed, 14 insertions, 8 deletions
diff --git a/Propellor/Property/SiteSpecific/GitAnnexBuilder.hs b/Propellor/Property/SiteSpecific/GitAnnexBuilder.hs index 8fcfbd6a..7b823ed6 100644 --- a/Propellor/Property/SiteSpecific/GitAnnexBuilder.hs +++ b/Propellor/Property/SiteSpecific/GitAnnexBuilder.hs @@ -12,8 +12,8 @@ builduser = "builder" builddir :: FilePath builddir = "gitbuilder" -builder :: Architecture -> CronTimes -> Property -builder arch crontimes = combineProperties "gitannexbuilder" +builder :: Architecture -> CronTimes -> Bool -> Property +builder arch crontimes rsyncupload = combineProperties "gitannexbuilder" [ Apt.stdSourcesList Unstable , Apt.buildDep ["git-annex"] , Apt.installed ["git", "rsync", "moreutils", "ca-certificates", @@ -38,11 +38,17 @@ builder arch crontimes = combineProperties "gitannexbuilder" , Property "rsync password" $ do d <- homedir let f = d </> "rsyncpassword" - withPrivData (Password builduser) $ \p -> do - oldp <- catchDefaultIO "" $ readFileStrict f - if p /= oldp - then makeChange $ writeFile f p - else noChange + if rsyncupload + then withPrivData (Password builduser) $ \p -> do + oldp <- catchDefaultIO "" $ readFileStrict f + if p /= oldp + then makeChange $ writeFile f p + else noChange + else do + ifM (doesFileExist f) + ( noChange + , makeChange $ writeFile f "no password configured" + ) ] where homedir = fromMaybe ("/home/" ++ builduser) <$> User.homedir builduser @@ -76,7 +76,7 @@ container _host name let arch = takeWhile (/= '-') name in Just $ Docker.containerFrom (image $ System (Debian Unstable) arch) - [ Docker.inside $ props & GitAnnexBuilder.builder arch "15 * * * *" ] + [ Docker.inside $ props & GitAnnexBuilder.builder arch "15 * * * *" True ] | otherwise = Nothing -- | Docker images I prefer to use. |
