aboutsummaryrefslogblamecommitdiffstatshomepage
path: root/README.md
blob: 4c07b4e999999080277dbb2477403ecb4807194a (plain) (tree)
1
2
3
4
5
6
7
8
9

                             
 
                                                                         
                  

                         

                                                                        
 




              




             
   
   





                                                       

               
   
   





                                              




                                                            
 
                                                                               
                              
 





                           

             
                                


           




                                                         


   

                                             




                                       














                                                                                                          





                                                                 

               








                                                                                                          








                                                                          
                                                 











                                                                                               
                                                                            




                     

       
 
                                  

                              
                          
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 your `PATH`.
* [remove_path] — Remove directories from your `PATH`.
* [set_env] — Set environment variables.
* [unset_env] — Unset 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 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 global `PATH`s, skipping the
confirmation prompt:

```
> remove_path --global -y C:\test
```

### set_env

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

Unset the variable `foo` for current user, skipping the confirmation prompt:

```
> unset_env --yes foo
```

License
-------

Distributed under the MIT License.
See [LICENSE.txt] for details.

[LICENSE.txt]: LICENSE.txt