From b7178c3a2cceb743552c014a46a451cd4df88654 Mon Sep 17 00:00:00 2001 From: dtluna Date: Tue, 26 Mar 2019 13:32:28 +0300 Subject: [PATCH] Add printenv --- README.md | 1 + printenv/printenv.go | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 printenv/printenv.go diff --git a/README.md b/README.md index f22fad2..a63ff76 100644 --- a/README.md +++ b/README.md @@ -14,3 +14,4 @@ Implemeted utilities: * `dirname` * `basename` * `echo` + * `printenv` diff --git a/printenv/printenv.go b/printenv/printenv.go new file mode 100644 index 0000000..9c2b2a7 --- /dev/null +++ b/printenv/printenv.go @@ -0,0 +1,32 @@ +package main + +import ( + "fmt" + "os" +) + +func printStrings(strings []string) { + for _, str := range strings { + fmt.Println(str) + } +} + +func main() { + if len(os.Args) == 1 { + printStrings(os.Environ()) + os.Exit(0) + } + + exitCode := 0 + envVars := []string{} + for _, key := range os.Args[1:] { + val, present := os.LookupEnv(key) + if present { + envVars = append(envVars, val) + } else { + exitCode = 1 + } + } + printStrings(envVars) + os.Exit(exitCode) +}