aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--apps/AddPath.hs21
-rw-r--r--apps/FixNtSymbolPath.hs17
-rw-r--r--apps/ListPath.hs9
-rw-r--r--apps/RemovePath.hs21
-rw-r--r--apps/SetEnv.hs15
-rw-r--r--apps/UnsetEnv.hs13
-rw-r--r--apps/Utils.hs2
-rw-r--r--src/Windows/Environment.hs (renamed from src/Environment.hs)6
-rw-r--r--src/Windows/Registry.hs (renamed from src/Registry.hs)2
-rw-r--r--src/Windows/Utils.hs (renamed from src/WindowsUtils.hs)2
-rw-r--r--windows-env.cabal3
11 files changed, 53 insertions, 58 deletions
diff --git a/apps/AddPath.hs b/apps/AddPath.hs
index 6103d1d..db0dcc2 100644
--- a/apps/AddPath.hs
+++ b/apps/AddPath.hs
@@ -11,17 +11,16 @@ import Data.List (union)
import Data.Maybe (fromMaybe)
import Text.Printf (printf)
-import Options.Applicative
-
-import qualified Environment
+import Options.Applicative
+import qualified Windows.Environment as Env
import qualified Utils
data Options = Options
- { optName :: Environment.VarName
+ { optName :: Env.VarName
, optYes :: Bool
, optGlobal :: Bool
- , optPaths :: [Environment.VarValue]
+ , optPaths :: [Env.VarValue]
} deriving (Eq, Show)
options :: Parser Options
@@ -52,21 +51,21 @@ main = execParser parser >>= addPath
addPath :: Options -> IO ()
addPath options = do
- oldValue <- Environment.query profile varName
- let oldPaths = Environment.pathSplit $ fromMaybe "" oldValue
+ oldValue <- Env.query profile varName
+ let oldPaths = Env.pathSplit $ fromMaybe "" oldValue
let newPaths = union oldPaths pathsToAdd
when (length oldPaths /= length newPaths) $ do
- let newValue = Environment.pathJoin newPaths
+ let newValue = Env.pathJoin newPaths
let promptBanner = Utils.engraveBanner profile varName oldValue newValue
- void $ prompt promptBanner $ Environment.engrave profile varName newValue
+ void $ prompt promptBanner $ Env.engrave profile varName newValue
where
varName = optName options
pathsToAdd = optPaths options
forAllUsers = optGlobal options
profile = if forAllUsers
- then Environment.AllUsers
- else Environment.CurrentUser
+ then Env.AllUsers
+ else Env.CurrentUser
skipPrompt = optYes options
prompt = if skipPrompt
diff --git a/apps/FixNtSymbolPath.hs b/apps/FixNtSymbolPath.hs
index 3788381..8c999a8 100644
--- a/apps/FixNtSymbolPath.hs
+++ b/apps/FixNtSymbolPath.hs
@@ -12,9 +12,8 @@ import Data.Maybe (fromMaybe)
import System.Directory (createDirectoryIfMissing, getCurrentDirectory)
import System.FilePath (combine)
-import Options.Applicative
-
-import qualified Environment
+import Options.Applicative
+import qualified Windows.Environment as Env
import qualified Utils
@@ -66,15 +65,15 @@ getLocalDirs = do
fixNtSymbolPath :: Options -> IO ()
fixNtSymbolPath options = do
- oldValue <- Environment.query profile varName
- let oldPaths = Environment.pathSplit $ fromMaybe "" oldValue
+ oldValue <- Env.query profile varName
+ let oldPaths = Env.pathSplit $ fromMaybe "" oldValue
localDirs <- getLocalDirs
let remoteDirs = toRemoteDirs localDirs
let newPaths = union oldPaths $ dirPaths remoteDirs
when (length oldPaths /= length newPaths) $ do
- let newValue = Environment.pathJoin newPaths
+ let newValue = Env.pathJoin newPaths
let promptBanner = Utils.engraveBanner profile varName oldValue newValue
- confirmed <- prompt promptBanner $ Environment.engrave profile varName newValue
+ confirmed <- prompt promptBanner $ Env.engrave profile varName newValue
when confirmed $
createDirs localDirs
where
@@ -82,8 +81,8 @@ fixNtSymbolPath options = do
forAllUsers = optGlobal options
profile = if forAllUsers
- then Environment.AllUsers
- else Environment.CurrentUser
+ then Env.AllUsers
+ else Env.CurrentUser
skipPrompt = optYes options
prompt = if skipPrompt
diff --git a/apps/ListPath.hs b/apps/ListPath.hs
index ace3ede..f33983d 100644
--- a/apps/ListPath.hs
+++ b/apps/ListPath.hs
@@ -11,12 +11,11 @@ import Data.Maybe (fromMaybe)
import System.Directory (doesDirectoryExist)
import System.Environment (lookupEnv)
-import Options.Applicative
-
-import qualified Environment
+import Options.Applicative
+import qualified Windows.Environment as Env
data Options = Options
- { optName :: Environment.VarName
+ { optName :: Env.VarName
} deriving (Eq, Show)
options :: Parser Options
@@ -35,7 +34,7 @@ main = execParser parser >>= listPath
listPath :: Options -> IO ()
listPath options = do
oldValue <- getEnv varName
- let oldPaths = Environment.pathSplit oldValue
+ let oldPaths = Env.pathSplit oldValue
mapM_ printPath oldPaths
where
varName = optName options
diff --git a/apps/RemovePath.hs b/apps/RemovePath.hs
index a594ecd..ecc56c0 100644
--- a/apps/RemovePath.hs
+++ b/apps/RemovePath.hs
@@ -10,17 +10,16 @@ import Control.Monad (void, when)
import Data.List ((\\))
import Data.Maybe (fromJust, isJust)
-import Options.Applicative
-
-import qualified Environment
+import Options.Applicative
+import qualified Windows.Environment as Env
import qualified Utils
data Options = Options
- { optName :: Environment.VarName
+ { optName :: Env.VarName
, optYes :: Bool
, optGlobal :: Bool
- , optPaths :: [Environment.VarValue]
+ , optPaths :: [Env.VarValue]
} deriving (Eq, Show)
options = Options
@@ -50,9 +49,9 @@ main = execParser parser >>= removePath
removePath :: Options -> IO ()
removePath options = do
- removePathFrom Environment.CurrentUser
+ removePathFrom Env.CurrentUser
when forAllUsers $ do
- removePathFrom Environment.AllUsers
+ removePathFrom Env.AllUsers
where
varName = optName options
pathsToRemove = optPaths options
@@ -60,14 +59,14 @@ removePath options = do
forAllUsers = optGlobal options
removePathFrom profile = do
- oldValue <- Environment.query profile varName
+ oldValue <- Env.query profile varName
when (isJust oldValue) $ do
- let oldPaths = Environment.pathSplit $ fromJust oldValue
+ let oldPaths = Env.pathSplit $ fromJust oldValue
let newPaths = oldPaths \\ pathsToRemove
when (length oldPaths /= length newPaths) $ do
- let newValue = Environment.pathJoin newPaths
+ let newValue = Env.pathJoin newPaths
let promptBanner = Utils.engraveBanner profile varName oldValue newValue
- void $ prompt promptBanner $ Environment.engrave profile varName newValue
+ void $ prompt promptBanner $ Env.engrave profile varName newValue
skipPrompt = optYes options
prompt = if skipPrompt
diff --git a/apps/SetEnv.hs b/apps/SetEnv.hs
index 0b95176..a48fbe6 100644
--- a/apps/SetEnv.hs
+++ b/apps/SetEnv.hs
@@ -8,17 +8,16 @@ module Main (main) where
import Control.Monad (void)
-import Options.Applicative hiding (value)
-
-import qualified Environment
+import Options.Applicative
+import qualified Windows.Environment as Env
import qualified Utils
data Options = Options
{ optYes :: Bool
, optGlobal :: Bool
- , optName :: Environment.VarName
- , optValue :: Environment.VarValue
+ , optName :: Env.VarName
+ , optValue :: Env.VarValue
} deriving (Eq, Show)
options :: Parser Options
@@ -48,7 +47,7 @@ main = execParser parser >>= setEnv
fullDesc <> progDesc "Set environment variable"
setEnv :: Options -> IO ()
-setEnv options = void $ prompt confirmationBanner $ Environment.engrave profile varName varValue
+setEnv options = void $ prompt confirmationBanner $ Env.engrave profile varName varValue
where
confirmationBanner = Utils.engraveBanner profile varName Nothing varValue
@@ -57,8 +56,8 @@ setEnv options = void $ prompt confirmationBanner $ Environment.engrave profile
forAllUsers = optGlobal options
profile = if forAllUsers
- then Environment.AllUsers
- else Environment.CurrentUser
+ then Env.AllUsers
+ else Env.CurrentUser
skipPrompt = optYes options
prompt = if skipPrompt
diff --git a/apps/UnsetEnv.hs b/apps/UnsetEnv.hs
index b0ed96a..88101d9 100644
--- a/apps/UnsetEnv.hs
+++ b/apps/UnsetEnv.hs
@@ -8,16 +8,15 @@ module Main (main) where
import Control.Monad (void)
-import Options.Applicative
-
-import qualified Environment
+import Options.Applicative
+import qualified Windows.Environment as Env
import qualified Utils
data Options = Options
{ optYes :: Bool
, optGlobal :: Bool
- , optName :: Environment.VarName
+ , optName :: Env.VarName
} deriving (Eq, Show)
options :: Parser Options
@@ -43,7 +42,7 @@ main = execParser parser >>= unsetEnv
fullDesc <> progDesc "Unset environment variable"
unsetEnv :: Options -> IO ()
-unsetEnv options = void $ prompt confirmationBanner $ Environment.wipe profile varName
+unsetEnv options = void $ prompt confirmationBanner $ Env.wipe profile varName
where
confirmationBanner = Utils.wipeBanner profile varName
@@ -51,8 +50,8 @@ unsetEnv options = void $ prompt confirmationBanner $ Environment.wipe profile v
forAllUsers = optGlobal options
profile = if forAllUsers
- then Environment.AllUsers
- else Environment.CurrentUser
+ then Env.AllUsers
+ else Env.CurrentUser
skipPrompt = optYes options
prompt = if skipPrompt
diff --git a/apps/Utils.hs b/apps/Utils.hs
index 28309d4..e34950f 100644
--- a/apps/Utils.hs
+++ b/apps/Utils.hs
@@ -18,7 +18,7 @@ import Data.Char (toLower)
import System.IO (hFlush, stdout)
import Text.Printf (printf)
-import Environment (Profile, profileKeyPath, VarName, VarValue)
+import Windows.Environment (Profile, profileKeyPath, VarName, VarValue)
prompt :: String -> IO String
prompt banner = do
diff --git a/src/Environment.hs b/src/Windows/Environment.hs
index f370de4..2bea481 100644
--- a/src/Environment.hs
+++ b/src/Windows/Environment.hs
@@ -4,7 +4,7 @@
- See LICENSE.txt for details.
-}
-module Environment
+module Windows.Environment
( Profile(..)
, profileKeyPath
@@ -22,8 +22,8 @@ import Data.List (intercalate)
import Data.List.Split (splitOn)
import System.IO.Error (catchIOError, isDoesNotExistError)
-import qualified Registry
-import WindowsUtils (notifyEnvironmentUpdate)
+import qualified Windows.Registry as Registry
+import Windows.Utils (notifyEnvironmentUpdate)
data Profile = CurrentUser
| AllUsers
diff --git a/src/Registry.hs b/src/Windows/Registry.hs
index 48d69f0..528027f 100644
--- a/src/Registry.hs
+++ b/src/Windows/Registry.hs
@@ -4,7 +4,7 @@
- See LICENSE.txt for details.
-}
-module Registry
+module Windows.Registry
( KeyPath
, keyPathFromString
, keyPathJoin
diff --git a/src/WindowsUtils.hs b/src/Windows/Utils.hs
index 6fa1f0e..aad241f 100644
--- a/src/WindowsUtils.hs
+++ b/src/Windows/Utils.hs
@@ -4,7 +4,7 @@
- See LICENSE.txt for details.
-}
-module WindowsUtils
+module Windows.Utils
( notifyEnvironmentUpdate
) where
diff --git a/windows-env.cabal b/windows-env.cabal
index aa0190e..d34684f 100644
--- a/windows-env.cabal
+++ b/windows-env.cabal
@@ -15,7 +15,8 @@ cabal-version: >=1.10
library
hs-source-dirs: src
- exposed-modules: Environment, Registry, WindowsUtils
+ exposed-modules: Windows.Environment
+ other-modules: Windows.Registry, Windows.Utils
ghc-options: -Wall -Werror
build-depends: base, split, Win32
default-language: Haskell2010