diff options
| author | Joey Hess <id@joeyh.name> | 2014-12-05 16:47:18 -0400 |
|---|---|---|
| committer | Joey Hess <id@joeyh.name> | 2014-12-05 16:48:52 -0400 |
| commit | 00ab24016453c1d787b7132654f96f614d177d27 (patch) | |
| tree | 0a7f2d4b5453c3bca00d10544e7cdd078aa8c894 /src | |
| parent | 35648961ddbd65cd2f7901366610bfc318667a84 (diff) | |
fix install of debootstrap from source
Diffstat (limited to 'src')
| -rw-r--r-- | src/Propellor/Property/Debootstrap.hs | 9 | ||||
| -rw-r--r-- | src/Propellor/Property/OS.hs | 5 |
2 files changed, 11 insertions, 3 deletions
diff --git a/src/Propellor/Property/Debootstrap.hs b/src/Propellor/Property/Debootstrap.hs index 35d9e472..b4fd2654 100644 --- a/src/Propellor/Property/Debootstrap.hs +++ b/src/Propellor/Property/Debootstrap.hs @@ -2,7 +2,9 @@ module Propellor.Property.Debootstrap ( Url, DebootstrapConfig(..), built, + built', installed, + sourceInstall, programPath, ) where @@ -54,11 +56,14 @@ toParams (c1 :+ c2) = toParams c1 <> toParams c2 -- Note that reverting this property does not stop any processes -- currently running in the chroot. built :: FilePath -> System -> DebootstrapConfig -> RevertableProperty -built target system@(System _ arch) config = +built = built' (toProp installed) + +built' :: Property -> FilePath -> System -> DebootstrapConfig -> RevertableProperty +built' installprop target system@(System _ arch) config = RevertableProperty setup teardown where setup = check (unpopulated target <||> ispartial) setupprop - `requires` toProp installed + `requires` installprop teardown = check (not <$> unpopulated target) teardownprop diff --git a/src/Propellor/Property/OS.hs b/src/Propellor/Property/OS.hs index 3f999e23..020d7435 100644 --- a/src/Propellor/Property/OS.hs +++ b/src/Propellor/Property/OS.hs @@ -78,7 +78,10 @@ cleanInstallOnce confirmation = check (not <$> doesFileExist flagfile) $ (Just u@(System (Ubuntu _) _)) -> debootstrap u _ -> error "os is not declared to be Debian or Ubuntu" debootstrap targetos = ensureProperty $ toProp $ - Debootstrap.built newOSDir targetos Debootstrap.DefaultConfig + -- Ignore the os setting, and install debootstrap from + -- source, since we don't know what OS we're running in yet. + Debootstrap.built' Debootstrap.sourceInstall + newOSDir targetos Debootstrap.DefaultConfig flipped = property (newOSDir ++ " moved into place") $ liftIO $ do -- First, unmount most mount points, lazily, so |
