generalized git-annex autobuilder to not need a rsync password

This commit is contained in:
Joey Hess 2014-04-02 18:36:42 -04:00
parent b456e8aedc
commit cd10ceb976
Failed to extract signature
2 changed files with 14 additions and 8 deletions

View File

@ -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

View File

@ -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.