blob: 3c63c24f47aca55cdea677df7a2ba0be0dfd3fb7 (
plain) (
tree)
|
|
Windows environment variables
=============================
A collection of simple utilities to manage Windows environment variables,
created mainly to:
* learn a bit of Haskell,
* make it easier to add directories to the `PATH` variable, list missing
directories in your `PATH`, etc.
Building
--------
Using [stack]:
```
> stack setup
...
> stack build
...
```
[stack]: http://docs.haskellstack.org/en/stable/README/
Installation
------------
```
> stack install
...
```
Usage
-----
The complete list of utilities is given below.
* [list_path] — List directories in your `PATH`.
* [add_path] — Add directories to `PATH`.
* [remove_path] — Remove directories from `PATH`.
* [set_env] — Assign values to environment variables.
* [unset_env] — Delete environment variables.
Pass the `--help` flag to an utility to examine its detailed usage information.
Some examples are given below.
[list_path]: #list_path
[add_path]: #add_path
[remove_path]: #remove_path
[set_env]: #set_env
[unset_env]: #unset_env
### list_path
List directories in your `PATH`:
```
> list_path
C:\Program Files\Haskell\bin
C:\Program Files\Haskell Platform\8.0.1\lib\extralibs\bin
C:\Program Files\Haskell Platform\8.0.1\bin
C:\Users\Egor\AppData\Roaming\local\bin
C:\Users\Egor\AppData\Roaming\cabal\bin
...
```
Only list missing directories in your `PATH`:
```
> list_path --missing
C:\Users\Egor\AppData\Roaming\cabal\bin
...
```
### add_path
Add "C:\test" to current user's `PATH`:
```
> add_path C:\test
Saving variable 'PATH' to 'HKCU\Environment'...
Old value: C:\Users\Egor\AppData\Roaming\local\bin;C:\Users\Egor\AppData\Roaming\cabal\bin
New value: C:\Users\Egor\AppData\Roaming\local\bin;C:\Users\Egor\AppData\Roaming\cabal\bin;C:\test
Continue? (y/n) y
```
Add "C:\test" to the global `PATH`, skipping the confirmation prompt:
```
> add_path --global -y C:\test
```
### remove_path
Remove "C:\test" from current user's `PATH`:
```
> remove_path C:\test
Saving variable 'PATH' to 'HKCU\Environment'...
Old value: C:\Users\Egor\AppData\Roaming\local\bin;C:\Users\Egor\AppData\Roaming\cabal\bin;C:\test
New value: C:\Users\Egor\AppData\Roaming\local\bin;C:\Users\Egor\AppData\Roaming\cabal\bin
```
Remove "C:\test" from both current user's and the global `PATH`s, skipping the
confirmation prompt:
```
> remove_path --global -y C:\test
```
### set_env
Assign `bar` to the variable `foo` in current user's environment, skipping the
confirmation prompt:
```
> set_env -y foo bar
```
Assign `bar` to the variable `foo` in the global environment:
```
> set_env --global foo bar
Saving variable 'foo' to 'HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment'...
Value: bar
Continue? (y/n) y
```
### unset_env
Delete the variable `foo` from current users's environment, skipping the
confirmation prompt:
```
> unset_env -y foo
```
Delete the variable `foo` from the global environment:
```
> unset_env --global foo
Deleting variable 'foo' from 'HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment'...
Continue? (y/n) y
```
License
-------
Distributed under the MIT License.
See [LICENSE.txt] for details.
[LICENSE.txt]: LICENSE.txt
|