blob: 0ddbe6adfc4458746235f093826b7b2c4b8b798c (
plain) (
tree)
|
|
Windows environment variables management
========================================
A collection of simple programs to manage my environment variables, created
mainly to:
* learn a bit of Haskell,
* make it easier to add paths to the `PATH` variable, automatically setup
`_NT_SYMBOL_PATH`, etc.
Building
--------
Using [stack]:
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_path) — List directories in your `PATH`.
* [add_path](add_path) — Add directories to your `PATH`.
* [remove_path](remove_path) — Remove directories from your `PATH`.
* [set_env](set_env) — Set environment variable.
* [unset_env](unset_env) — Unset environment variable.
Pass the `--help` flag to a utility to examine its detailed usage information.
Some usage examples are given below.
### list_path
List directories in your `PATH` variable:
```
> 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
...
```
Lines starting with `+` denote existing directories.
Conversly, lines starting with `-` denote missing directories.
### 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
>
```
### remove_path
Remove "C:\test" from both current user's and global `PATH`s, skipping the
confirmation prompt:
```
> remove_path --global -y C:\test
```
### set_env
To assign `bar` to the variable `foo` for all users:
```
> set_env -g foo bar
Saving variable 'foo' to 'HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment'...
Value: bar
Continue? (y/n) y
>
```
### unset_env
To unset the variable `foo` for current user, skipping the confirmation prompt:
```
> unset_env --yes foo
```
License
-------
This project, including all of the files and their contents, is licensed under
the terms of the MIT License.
See [LICENSE.txt] for details.
[LICENSE.txt]: LICENSE.txt
|