aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/apps
diff options
context:
space:
mode:
authorEgor Tensin <Egor.Tensin@gmail.com>2016-12-13 03:20:58 +0300
committerEgor Tensin <Egor.Tensin@gmail.com>2016-12-13 03:20:58 +0300
commit1ab0697d268c27a0d7871e0f6bcb6ba1a165fb77 (patch)
tree5e36eec58bf32ded1a266d8310c1ada3265db0e1 /apps
parentbugfix (withPrompt no longer swallows IOError) (diff)
downloadwindows-env-1ab0697d268c27a0d7871e0f6bcb6ba1a165fb77.tar.gz
windows-env-1ab0697d268c27a0d7871e0f6bcb6ba1a165fb77.zip
setenv: prompt message update
It also now uncoditionally overrides variables (i.e. even when the corresponding registy values are not strings).
Diffstat (limited to 'apps')
-rw-r--r--apps/AddPath.hs2
-rw-r--r--apps/PromptMessage.hs21
-rw-r--r--apps/RemovePath.hs2
-rw-r--r--apps/SetEnv.hs4
4 files changed, 18 insertions, 11 deletions
diff --git a/apps/AddPath.hs b/apps/AddPath.hs
index 5ff96c5..7e5ae65 100644
--- a/apps/AddPath.hs
+++ b/apps/AddPath.hs
@@ -76,6 +76,6 @@ addPath options = runExceptT doAddPath >>= either ioError return
let newValue = Env.pathJoin newPaths
let promptAnd = if skipPrompt
then withoutPrompt
- else withPrompt $ engraveMessage profile varName oldValue newValue
+ else withPrompt $ oldNewMessage profile varName oldValue newValue
let engrave = Env.engrave profile varName newValue
void $ promptAnd engrave
diff --git a/apps/PromptMessage.hs b/apps/PromptMessage.hs
index 27851cf..2bee0a5 100644
--- a/apps/PromptMessage.hs
+++ b/apps/PromptMessage.hs
@@ -5,7 +5,8 @@
-- Stability : experimental
module PromptMessage
- ( engraveMessage
+ ( oldNewMessage
+ , newMessage
, wipeMessage
) where
@@ -13,17 +14,23 @@ import Text.Printf (printf)
import qualified Windows.Environment as Env
-engraveMessage :: Env.Profile -> Env.VarName -> Env.VarValue -> Env.VarValue -> String
-engraveMessage profile name oldValue newValue =
- descriptionMsg ++ oldValueMsg ++ newValueMsg
+oldNewMessage :: Env.Profile -> Env.VarName -> Env.VarValue -> Env.VarValue -> String
+oldNewMessage profile name oldValue newValue =
+ descrMsg ++ oldValueMsg ++ newValueMsg
where
profileKey = Env.profileKeyPath profile
-
- descriptionMsg = printf "Saving variable '%s' to '%s'...\n" name (show profileKey)
-
+ descrMsg = printf "Saving variable '%s' to '%s'...\n" name (show profileKey)
oldValueMsg = printf "\tOld value: %s\n" oldValue
newValueMsg = printf "\tNew value: %s\n" newValue
+newMessage :: Env.Profile -> Env.VarName -> Env.VarValue -> String
+newMessage profile name newValue =
+ descrMsg ++ newValueMsg
+ where
+ profileKey = Env.profileKeyPath profile
+ descrMsg = printf "Saving variable '%s' to '%s'...\n" name (show profileKey)
+ newValueMsg = printf "\tNew value: %s\n" newValue
+
wipeMessage :: Env.Profile -> Env.VarName -> String
wipeMessage profile name =
printf "Deleting variable '%s' from '%s'...\n" name (show profileKey)
diff --git a/apps/RemovePath.hs b/apps/RemovePath.hs
index 7b8f1ac..55e03f1 100644
--- a/apps/RemovePath.hs
+++ b/apps/RemovePath.hs
@@ -79,6 +79,6 @@ removePath options = runExceptT doRemovePath >>= either ioError return
let newValue = Env.pathJoin newPaths
let promptAnd = if skipPrompt
then withoutPrompt
- else withPrompt $ engraveMessage profile varName oldValue newValue
+ else withPrompt $ oldNewMessage profile varName oldValue newValue
let engrave = Env.engrave profile varName newValue
void $ promptAnd engrave
diff --git a/apps/SetEnv.hs b/apps/SetEnv.hs
index 0c8df32..aa8c583 100644
--- a/apps/SetEnv.hs
+++ b/apps/SetEnv.hs
@@ -64,8 +64,8 @@ setEnv options = runExceptT doSetEnv >>= either ioError return
skipPrompt = optYes options
promptAnd
| skipPrompt = withoutPrompt
- | otherwise = withPrompt $ engraveMessage profile varName "" varValue
+ | otherwise = withPrompt $ newMessage profile varName varValue
- engrave = Env.engrave profile varName varValue
+ engrave = Env.engraveForce profile varName varValue
doSetEnv = void $ promptAnd engrave