diff --git a/common.go b/common.go new file mode 100644 index 0000000..76d36be --- /dev/null +++ b/common.go @@ -0,0 +1,18 @@ +package coreutils + +import ( + "fmt" + "os" +) + +// PrintStrings prints each string in strings on a new line +func PrintStrings(strings []string) { + for _, str := range strings { + fmt.Println(str) + } +} + +// PrintEnv prints all environment variables +func PrintEnv() { + PrintStrings(os.Environ()) +} diff --git a/env/env.go b/env/env.go new file mode 100644 index 0000000..2885208 --- /dev/null +++ b/env/env.go @@ -0,0 +1,21 @@ +package main + +import ( + "flag" + "os" + common "source.heropunch.io/tomo/go-coreutils" +) + +var ignoreEnv = flag.Bool( + "i", + false, + "Completely ignore the existing environment and execute cmd only with each (var, value) tuple specified.", +) + +func main() { + flag.Parse() + if *ignoreEnv { + os.Clearenv() + } + common.PrintEnv() +} diff --git a/printenv/printenv.go b/printenv/printenv.go index 9c2b2a7..40f713d 100644 --- a/printenv/printenv.go +++ b/printenv/printenv.go @@ -1,19 +1,13 @@ package main import ( - "fmt" "os" + common "source.heropunch.io/tomo/go-coreutils" ) -func printStrings(strings []string) { - for _, str := range strings { - fmt.Println(str) - } -} - func main() { if len(os.Args) == 1 { - printStrings(os.Environ()) + common.PrintEnv() os.Exit(0) } @@ -27,6 +21,6 @@ func main() { exitCode = 1 } } - printStrings(envVars) + common.PrintStrings(envVars) os.Exit(exitCode) }