aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src/EnvUtils.hs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/Environment.hs (renamed from src/EnvUtils.hs)32
1 files changed, 17 insertions, 15 deletions
diff --git a/src/EnvUtils.hs b/src/Environment.hs
index 7e9bc96..0690278 100644
--- a/src/EnvUtils.hs
+++ b/src/Environment.hs
@@ -4,15 +4,15 @@
- See LICENSE.txt for details.
-}
-module EnvUtils ( saveToRegistry
- , saveToRegistryWithPrompt
- , queryFromRegistry
- , wipeFromRegistry
- , wipeFromRegistryWithPrompt
- , getEnv
- , splitPaths
- , joinPaths
- , RegistryBasedEnvironment ( CurrentUserEnvironment, AllUsersEnvironment ) ) where
+module Environment ( saveToRegistry
+ , saveToRegistryWithPrompt
+ , queryFromRegistry
+ , wipeFromRegistry
+ , wipeFromRegistryWithPrompt
+ , getEnv
+ , splitPaths
+ , joinPaths
+ , RegistryBasedEnvironment(..) ) where
import Control.Monad ( liftM, when )
import Data.List ( intercalate )
@@ -21,7 +21,7 @@ import Data.Maybe ( fromMaybe )
import qualified System.Environment ( lookupEnv )
import System.IO.Error ( catchIOError, isDoesNotExistError )
-import qualified RegUtils
+import qualified Registry
import qualified Utils ( promptToContinue )
data RegistryBasedEnvironment = CurrentUserEnvironment
@@ -32,15 +32,16 @@ registrySubKeyPath :: RegistryBasedEnvironment -> String
registrySubKeyPath CurrentUserEnvironment = "Environment"
registrySubKeyPath AllUsersEnvironment = "SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment"
-registryKey CurrentUserEnvironment = RegUtils.hkcu
-registryKey AllUsersEnvironment = RegUtils.hklm
+registryKey :: RegistryBasedEnvironment -> Registry.KeyHandle
+registryKey CurrentUserEnvironment = Registry.hkcu
+registryKey AllUsersEnvironment = Registry.hklm
registryKeyPath :: RegistryBasedEnvironment -> String
registryKeyPath CurrentUserEnvironment = "HKCU\\" ++ registrySubKeyPath CurrentUserEnvironment
registryKeyPath AllUsersEnvironment = "HKLM\\" ++ registrySubKeyPath AllUsersEnvironment
saveToRegistry :: RegistryBasedEnvironment -> String -> String -> IO ()
-saveToRegistry env = RegUtils.setString (registryKey env) (registrySubKeyPath env)
+saveToRegistry env = Registry.setString (registryKey env) (registrySubKeyPath env)
saveToRegistryWithPrompt :: RegistryBasedEnvironment -> String -> String -> IO ()
saveToRegistryWithPrompt env name value = do
@@ -52,13 +53,13 @@ saveToRegistryWithPrompt env name value = do
when agreed $ saveToRegistry env name value
queryFromRegistry :: RegistryBasedEnvironment -> String -> IO String
-queryFromRegistry env name = catchIOError (RegUtils.getString (registryKey env) (registrySubKeyPath env) name) emptyIfDoesNotExist
+queryFromRegistry env name = catchIOError (Registry.getString (registryKey env) (registrySubKeyPath env) name) emptyIfDoesNotExist
where
emptyIfDoesNotExist :: IOError -> IO String
emptyIfDoesNotExist e = if isDoesNotExistError e then return "" else ioError e
wipeFromRegistry :: RegistryBasedEnvironment -> String -> IO ()
-wipeFromRegistry env name = catchIOError (RegUtils.delValue (registryKey env) (registrySubKeyPath env) name) ignoreIfDoesNotExist
+wipeFromRegistry env name = catchIOError (Registry.delValue (registryKey env) (registrySubKeyPath env) name) ignoreIfDoesNotExist
where
ignoreIfDoesNotExist :: IOError -> IO ()
ignoreIfDoesNotExist e = if isDoesNotExistError e then return () else ioError e
@@ -72,6 +73,7 @@ wipeFromRegistryWithPrompt env name = do
getEnv :: String -> IO String
getEnv = liftM (fromMaybe "") . System.Environment.lookupEnv
+pathSep :: String
pathSep = ";"
splitPaths :: String -> [String]