Add wrappers

This commit is contained in:
Hamcha 2020-01-23 09:40:00 +01:00
parent cb65dcd72a
commit 3658941098
Signed by: hamcha
GPG key ID: 44AD3571EB09A39E
4 changed files with 69 additions and 9 deletions

View file

@ -4,7 +4,9 @@ version = "0.1.0"
authors = ["Hamcha <hamcha@crunchy.rocks>"]
edition = "2018"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[[bin]]
name = "osenv-bin"
path = "src/main.rs"
[dependencies]
clap = "2.33"

View file

@ -22,12 +22,6 @@ $env:DB_USER = "admin"
$env:DB_PASSWORD = "changeme"
```
Use `osenv` like this:
```ps1
osenv -s ps1 | iex
```
### *nix shell
Example output:
@ -37,8 +31,51 @@ export DB_USER=admin
export DB_PASSWORD=changeme
```
Run `osenv` like this:
## Installation
### Requirements
- Rust + Cargo (tested w/ 1.37)
- A compatible shell (powershell/bash/zsh)
### Compilation
```sh
eval $(osenv)
cargo install --path .
```
This will install `osenv-bin` in your cargo bin folder (don't forget to add it to `PATH`!)
You can already use it, with some caveats (having to specify the full string, like `osenv-bin | iex`), but you should just make a function and add it to your shell's profile file.
### Add to profile
If you're using sh/bash/zsh, add this to your .bashrc/.zshrc/etc:
```sh
osenv() {
RES=$(osenv-bin $@)
if [ $? -eq 0 ]; then
eval $RES
else
echo $RES
fi
}
```
If you're using Powershell, add this to your `$profile`:
```ps1
function osenv {
$cmd = osenv-bin @Args
if ($?) {
$cmd | Invoke-Expression
}
else {
Write-Output $cmd
}
}
```
If you rather have them as script to source, you can find them in `scripts` in this repo.
If you want to enhance osenv to add a special "add to profile" command, or make some scripts that do (easy in powershell, not so much in the shell world), contributions are highly appreciated!

9
scripts/osenv.ps1 Normal file
View file

@ -0,0 +1,9 @@
function osenv {
$cmd = osenv-bin @Args
if ($?) {
$cmd | Invoke-Expression
}
else {
Write-Output $cmd
}
}

12
scripts/osenv.sh Normal file
View file

@ -0,0 +1,12 @@
#!/bin/sh
osenv() {
RES=$(osenv-bin $@)
if [ $? -eq 0 ]; then
eval $RES
else
echo $RES
fi
}
osenv $@