diff options
| author | Joey Hess <joeyh@joeyh.name> | 2016-03-05 16:02:14 -0400 |
|---|---|---|
| committer | Joey Hess <joeyh@joeyh.name> | 2016-03-05 16:02:14 -0400 |
| commit | d551752ac333b809b5e6174fabd0324f9b377f1b (patch) | |
| tree | 79a4e98ec93d91281ce26e6c7a7979fff7f41bec /src | |
| parent | 238d9c86f4c314e2c6671e50990dd994fed999f0 (diff) | |
propellor spin
Diffstat (limited to 'src')
| -rw-r--r-- | src/Propellor/Property/SiteSpecific/GitAnnexBuilder.hs | 38 |
1 files changed, 37 insertions, 1 deletions
diff --git a/src/Propellor/Property/SiteSpecific/GitAnnexBuilder.hs b/src/Propellor/Property/SiteSpecific/GitAnnexBuilder.hs index 153d714f..cde6b7d9 100644 --- a/src/Propellor/Property/SiteSpecific/GitAnnexBuilder.hs +++ b/src/Propellor/Property/SiteSpecific/GitAnnexBuilder.hs @@ -105,7 +105,6 @@ autoBuilderContainer :: (System -> Flavor -> Property HasInfo) -> System -> Flav autoBuilderContainer mkprop osver@(System _ arch) flavor crontime timeout = Systemd.container name osver (Chroot.debootstrapped mempty) & mkprop osver flavor - & buildDepsApt & autobuilder arch crontime timeout where name = arch ++ fromMaybe "" flavor ++ "-git-annex-builder" @@ -116,12 +115,49 @@ standardAutoBuilder :: System -> Flavor -> Property HasInfo standardAutoBuilder osver@(System _ arch) flavor = propertyList "standard git-annex autobuilder" $ props & os osver + & buildDepsApt & Apt.stdSourcesList & Apt.unattendedUpgrades & Apt.cacheCleaned & User.accountFor (User builduser) & tree arch flavor +stackAutoBuilder :: System -> Flavor -> Property HasInfo +stackAutoBuilder osver@(System _ arch) flavor = + propertyList "git-annex autobuilder using stack" $ props + & os osver + & buildDepsNoHaskellLibs + & Apt.stdSourcesList + & Apt.unattendedUpgrades + & Apt.cacheCleaned + & User.accountFor (User builduser) + & tree arch flavor + & stackInstalled + +stackInstalled :: Property NoInfo +stackInstalled = withOS "stack installed" $ \o -> + case o of + (Just (System (Debian (Stable "jessie")) "i386")) -> + ensureProperty $ manualinstall "i386" + _ -> ensureProperty $ Apt.installed ["haskell-stack"] + where + -- Warning: Using a binary downloaded w/o validation. + manualinstall arch = check (not <$> doesFileExist binstack) $ + propertyList "stack installed from upstream tarball" + [ cmdProperty "wget" ["https://www.stackage.org/stack/linux-" ++ arch, "-O", tmptar] + `assume` MadeChange + , File.dirExists tmpdir + , cmdProperty "tar" ["xf", tmptar, "-C", tmpdir, "--strip-components=1"] + `assume` MadeChange + , cmdProperty "mv" [tmpdir </> "stack", binstack] + `assume` MadeChange + , cmdProperty "rm" ["-rf", tmpdir, tmptar] + `assume` MadeChange + ] + binstack = "/usr/bin/stack" + tmptar = "/root/stack.tar.gz" + tmpdir = "/root/stack" + armAutoBuilder :: System -> Flavor -> Property HasInfo armAutoBuilder osver flavor = propertyList "arm git-annex autobuilder" $ props |
