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.
z/env/env.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
},
}