mirror of https://github.com/rwxrob/z
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
893 B
Go
47 lines
893 B
Go
package env
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
"strings"
|
|
|
|
Z "github.com/rwxrob/bonzai/z"
|
|
"github.com/rwxrob/help"
|
|
"github.com/rwxrob/term"
|
|
)
|
|
|
|
var Cmd = &Z.Cmd{
|
|
Name: `env`,
|
|
Summary: `commands for environment variables`,
|
|
Commands: []*Z.Cmd{getCmd, dataCmd, help.Cmd},
|
|
}
|
|
|
|
var dataCmd = &Z.Cmd{
|
|
Name: `data`,
|
|
Aliases: []string{`all`},
|
|
Summary: `print environment data to stdout`,
|
|
Commands: []*Z.Cmd{help.Cmd},
|
|
Call: func(_ *Z.Cmd, _ ...string) error {
|
|
for _, pair := range os.Environ() {
|
|
fmt.Println(pair)
|
|
}
|
|
return nil
|
|
},
|
|
}
|
|
|
|
var getCmd = &Z.Cmd{
|
|
Name: `get`,
|
|
Usage: `(help|NAME)`,
|
|
Summary: `print specified environment variable to stdout`,
|
|
Commands: []*Z.Cmd{help.Cmd},
|
|
NumArgs: 1,
|
|
Call: func(_ *Z.Cmd, args ...string) error {
|
|
v := os.Getenv(args[0])
|
|
if v == "" {
|
|
v = os.Getenv(strings.ToUpper(args[0]))
|
|
}
|
|
_, err := term.Print(v)
|
|
return err
|
|
},
|
|
}
|