aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/FixNtSymbolPath.hs
diff options
context:
space:
mode:
authorEgor Tensin <Egor.Tensin@gmail.com>2016-07-11 18:55:26 +0300
committerEgor Tensin <Egor.Tensin@gmail.com>2016-07-11 18:55:26 +0300
commitd53c986113cef78e2b504ecd5a4bba60999a55e1 (patch)
tree445b892abcfa272153dc39968838dbdc5d34d684 /FixNtSymbolPath.hs
parentREADME update (diff)
downloadwindows-env-d53c986113cef78e2b504ecd5a4bba60999a55e1.tar.gz
windows-env-d53c986113cef78e2b504ecd5a4bba60999a55e1.zip
become a proper stack project
Diffstat (limited to 'FixNtSymbolPath.hs')
-rw-r--r--FixNtSymbolPath.hs51
1 files changed, 0 insertions, 51 deletions
diff --git a/FixNtSymbolPath.hs b/FixNtSymbolPath.hs
deleted file mode 100644
index 404dc77..0000000
--- a/FixNtSymbolPath.hs
+++ /dev/null
@@ -1,51 +0,0 @@
-{-
- - Copyright 2015 Egor Tensin <Egor.Tensin@gmail.com>
- - This file is licensed under the terms of the MIT License.
- - See LICENSE.txt for details.
--}
-
-module Main ( main ) where
-
-import Control.Monad ( unless )
-import System.Directory ( createDirectoryIfMissing, getCurrentDirectory )
-import System.FilePath ( combine )
-
-import qualified EnvUtils
-
-getRemoteSymbolsDirectoryPath :: IO String
-getRemoteSymbolsDirectoryPath = do
- localPath <- getLocalPath
- createDirectoryIfMissing True localPath
- return $ "SRV*" ++ localPath ++ "*" ++ remotePath
- where
- getLocalPath :: IO String
- getLocalPath = do
- cwd <- getCurrentDirectory
- return $ combine cwd "symbols"
- remotePath :: String
- remotePath = "http://msdl.microsoft.com/download/symbols"
-
-getPdbsDirectoryPath :: IO String
-getPdbsDirectoryPath = do
- cwd <- getCurrentDirectory
- let path = combine cwd "pdbs"
- createDirectoryIfMissing True path
- return path
-
-fixNtSymbolPath :: IO ()
-fixNtSymbolPath = do
- let env = EnvUtils.CurrentUserEnvironment
- val <- EnvUtils.queryFromRegistry env ntSymbolPath
- let presentPaths = EnvUtils.splitPaths val
- remoteSymbolsPath <- getRemoteSymbolsDirectoryPath
- pdbsPath <- getPdbsDirectoryPath
- let requiredPaths = [pdbsPath, remoteSymbolsPath]
- let missingPaths = filter (`notElem` presentPaths) requiredPaths
- unless (null missingPaths) $ do
- let newval = EnvUtils.joinPaths $ presentPaths ++ missingPaths
- EnvUtils.saveToRegistry env ntSymbolPath newval
- where
- ntSymbolPath = "_NT_SYMBOL_PATH"
-
-main :: IO ()
-main = fixNtSymbolPath