From 73ede57fbf494f8c0f300e50f2b2372b4ff32007 Mon Sep 17 00:00:00 2001 From: Egor Tensin Date: Sun, 17 Jul 2016 19:42:12 +0300 Subject: refactoring --- apps/FixNtSymbolPath.hs | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/apps/FixNtSymbolPath.hs b/apps/FixNtSymbolPath.hs index 7138f94..14d0861 100644 --- a/apps/FixNtSymbolPath.hs +++ b/apps/FixNtSymbolPath.hs @@ -38,8 +38,16 @@ data Dirs = Dirs , symbolsDir :: String } deriving (Eq, Show) -getRemoteDirs :: Dirs -> Dirs -getRemoteDirs localDirs = localDirs +dirPaths :: Dirs -> [String] +dirPaths dirs = [ pdbsDir dirs + , symbolsDir dirs + ] + +createDirs :: Dirs -> IO () +createDirs = mapM_ (createDirectoryIfMissing True) . dirPaths + +toRemoteDirs :: Dirs -> Dirs +toRemoteDirs localDirs = localDirs { symbolsDir = remoteSymbolsDir $ symbolsDir localDirs } where @@ -59,13 +67,13 @@ fixNtSymbolPath options = do oldValue <- query let oldPaths = Environment.pathSplit $ fromMaybe "" oldValue localDirs <- getLocalDirs - let remoteDirs = getRemoteDirs localDirs - let newPaths = union oldPaths $ paths remoteDirs + let remoteDirs = toRemoteDirs localDirs + let newPaths = union oldPaths $ dirPaths remoteDirs when (length oldPaths /= length newPaths) $ do let newValue = Environment.pathJoin newPaths confirmed <- engrave newValue when confirmed $ - createLocalDirs localDirs + createDirs localDirs where varName = "_NT_SYMBOL_PATH" @@ -81,10 +89,6 @@ fixNtSymbolPath options = do then Environment.engrave env varName value >> return True else Environment.engravePrompt env varName value - paths dirs = [pdbsDir dirs, symbolsDir dirs] - - createLocalDirs = mapM_ (createDirectoryIfMissing True) . paths - main :: IO () main = execParser parser >>= fixNtSymbolPath where -- cgit v1.2.3