From 0e39d53352b982022747e451676bc6a66e3d9acc Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Tue, 20 Oct 2015 23:37:21 -0400 Subject: refactor --- src/Propellor/PrivData.hs | 4 ++++ src/Propellor/Property/ControlHeir.hs | 4 ++-- src/Propellor/Spin.hs | 4 ++-- 3 files changed, 8 insertions(+), 4 deletions(-) (limited to 'src/Propellor') diff --git a/src/Propellor/PrivData.hs b/src/Propellor/PrivData.hs index 070070f0..aac37d14 100644 --- a/src/Propellor/PrivData.hs +++ b/src/Propellor/PrivData.hs @@ -17,6 +17,7 @@ module Propellor.PrivData ( makePrivDataDir, decryptPrivData, readPrivData, + readPrivDataFile, PrivMap, PrivInfo, forceHostContext, @@ -254,6 +255,9 @@ decryptPrivData = readPrivData <$> gpgDecrypt privDataFile readPrivData :: String -> PrivMap readPrivData = fromMaybe M.empty . readish +readPrivDataFile :: FilePath -> IO PrivMap +readPrivDataFile f = readPrivData <$> readFileStrictAnyEncoding f + makePrivDataDir :: IO () makePrivDataDir = createDirectoryIfMissing False privDataDir diff --git a/src/Propellor/Property/ControlHeir.hs b/src/Propellor/Property/ControlHeir.hs index 9fd2ce43..ce993a02 100644 --- a/src/Propellor/Property/ControlHeir.hs +++ b/src/Propellor/Property/ControlHeir.hs @@ -179,8 +179,8 @@ controllerFor h = infoProperty desc go (mkControllingInfo h <> privinfo) [] getInfo (hostInfo h) go = do - pm <- liftIO $ filterPrivData h . readPrivData - <$> readFileStrictAnyEncoding privDataLocal + pm <- liftIO $ filterPrivData h + <$> readPrivDataFile privDataLocal liftIO $ spin' (Just pm) Nothing (hostName h) h -- Don't know if the spin made a change to -- the remote host or not, but in any case, diff --git a/src/Propellor/Spin.hs b/src/Propellor/Spin.hs index 3cdd8c98..0c457705 100644 --- a/src/Propellor/Spin.hs +++ b/src/Propellor/Spin.hs @@ -100,9 +100,9 @@ spin' mprivdata relay target hst = do Nothing | relaying -> do let f = privDataRelay hn - d <- readFileStrictAnyEncoding f + d <- readPrivDataFile f nukeFile f - return (readPrivData d) + return d | otherwise -> filterPrivData hst <$> decryptPrivData Just pd -> pure pd -- cgit v1.2.3