summaryrefslogtreecommitdiff
path: root/src/Propellor/Property/SiteSpecific/GitAnnexBuilder.hs
diff options
context:
space:
mode:
authorJoey Hess2016-03-05 16:02:14 -0400
committerJoey Hess2016-03-05 16:02:14 -0400
commitd551752ac333b809b5e6174fabd0324f9b377f1b (patch)
tree79a4e98ec93d91281ce26e6c7a7979fff7f41bec /src/Propellor/Property/SiteSpecific/GitAnnexBuilder.hs
parent238d9c86f4c314e2c6671e50990dd994fed999f0 (diff)
propellor spin
Diffstat (limited to 'src/Propellor/Property/SiteSpecific/GitAnnexBuilder.hs')
-rw-r--r--src/Propellor/Property/SiteSpecific/GitAnnexBuilder.hs38
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,11 +115,48 @@ 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 =