From 014af4a5b4a21185e16f7564be00859b3bc4c060 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Thu, 4 Dec 2014 17:05:03 -0400 Subject: [PATCH] propellor spin --- src/Propellor/Property/OS.hs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/Propellor/Property/OS.hs b/src/Propellor/Property/OS.hs index 603e459..14e5d85 100644 --- a/src/Propellor/Property/OS.hs +++ b/src/Propellor/Property/OS.hs @@ -16,6 +16,8 @@ import qualified Propellor.Property.Ssh as Ssh import qualified Propellor.Property.User as User import Propellor.Property.Mount +import System.Posix.Files (rename, fileExist) + -- | Replaces whatever OS was installed before with a clean installation -- of the OS that the Host is configured to have. -- @@ -86,12 +88,12 @@ cleanInstallOnce confirmation = check (not <$> doesFileExist flagfile) $ rootcontents <- dirContents "/" forM_ rootcontents $ \d -> when (d `notElem` (oldOSDir:newOSDir:trickydirs)) $ - renameDirectory d (oldOSDir ++ d) + rename d (oldOSDir ++ d) newrootcontents <- dirContents newOSDir forM_ newrootcontents $ \d -> do let dest = "/" ++ takeFileName d - whenM (not <$> doesDirectoryExist dest) $ - renameDirectory d dest + whenM (not <$> fileExist dest) $ + rename d dest removeDirectory newOSDir return MadeChange