summaryrefslogtreecommitdiff
path: root/src/Propellor/Property/Sbuild.hs
diff options
context:
space:
mode:
authorSean Whitton2016-05-19 15:20:42 +0900
committerSean Whitton2016-05-19 15:20:42 +0900
commit15083c8af59e369b520eb063682804caada32e22 (patch)
tree27763d4167dd286a668805c33c49ca410ef197a6 /src/Propellor/Property/Sbuild.hs
parentec585a860b477b5e289c7a3ea03fce57deb0aa72 (diff)
Sbuild.updated cleans a non-shared apt-cache
Diffstat (limited to 'src/Propellor/Property/Sbuild.hs')
-rw-r--r--src/Propellor/Property/Sbuild.hs12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/Propellor/Property/Sbuild.hs b/src/Propellor/Property/Sbuild.hs
index 3967d0a1..55fb29c0 100644
--- a/src/Propellor/Property/Sbuild.hs
+++ b/src/Propellor/Property/Sbuild.hs
@@ -134,8 +134,16 @@ updated s@(SbuildSchroot suite arch) =
`requires` installed
where
go :: Property DebianLike
- go = tightenTargets $ cmdProperty
- "sbuild-update" ["-udr", suite ++ "-" ++ arch]
+ go = do
+ fstab <- lines <$> liftIO $ readFile "/etc/schroot/sbuild/fstab"
+ -- If this schroot shares its apt archives with the host
+ -- machine, don't run apt-get clean/autoclean
+ let args = if cacheLine `elem` fstab
+ then "-udr"
+ else "-udcar"
+ tightenTargets $ cmdProperty
+ "sbuild-update" [args, suite ++ "-" ++ arch]
+ cacheLine = "/var/cache/apt/archives /var/cache/apt/archives none rw,bind 0 0"
-- Find the conf file that sbuild-createchroot(1) made when we passed it
-- --chroot-suffix=propellor, and edit and rename such that it is as if we