From 31cf8e0c24ff25a14ce750bbb1491436c55f07e0 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Thu, 4 Dec 2014 16:54:04 -0400 Subject: propellor spin --- src/Propellor/Property/OS.hs | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'src/Propellor/Property') diff --git a/src/Propellor/Property/OS.hs b/src/Propellor/Property/OS.hs index aa304f61..2888800e 100644 --- a/src/Propellor/Property/OS.hs +++ b/src/Propellor/Property/OS.hs @@ -75,8 +75,8 @@ cleanInstallOnce confirmation = check (not <$> doesFileExist flagfile) $ debootstrap targetos = ensureProperty $ toProp $ Debootstrap.built newOSDir targetos Debootstrap.DefaultConfig - umountall = property "all mount points unmounted" $ liftIO $ do - mnts <- filter (/= "/") <$> mountPoints + umountall = property "mount points unmounted" $ liftIO $ do + mnts <- filter (`notElem` ["/", "/proc"]) <$> mountPoints forM_ mnts umountLazy return $ if null mnts then NoChange else MadeChange @@ -84,11 +84,13 @@ cleanInstallOnce confirmation = check (not <$> doesFileExist flagfile) $ createDirectoryIfMissing True oldOSDir rootcontents <- dirContents "/" forM_ rootcontents $ \d -> - when (d /= oldOSDir && d /= newOSDir) $ + when (d `notElem` [oldOSDir, newOSDir, "/proc"]) $ renameDirectory d (oldOSDir ++ d) newrootcontents <- dirContents newOSDir - forM_ newrootcontents $ \d -> - renameDirectory d ("/" ++ takeFileName d) + forM_ newrootcontents $ \d -> do + let dest = "/" ++ takeFileName d + whenM (not <$> doesDirectoryExist dest) $ + renameDirectory d dest removeDirectory newOSDir return MadeChange -- cgit v1.2.3