6 Commits

Author SHA1 Message Date
dawid 68b2ec93cb Update README.md 2022-02-14 22:09:13 +01:00
dawid f52de3c602 Update README.md 2022-02-14 22:08:40 +01:00
dawid ca02aa1da6 Update README.md 2022-02-14 13:33:46 +01:00
dawid 88a86bfab1 Delete .DS_Store 2022-02-07 14:06:38 +01:00
dawid 282e145791 Add prepend flag and change function of the prefix flag 2022-02-04 13:46:21 +01:00
dawid f2f8f33335 Add a makefile 2021-10-27 09:52:16 +02:00
4 changed files with 22 additions and 10 deletions
+1
View File
@@ -1 +1,2 @@
getenv getenv
dist/*
+8
View File
@@ -0,0 +1,8 @@
VERSION=$(shell git describe)
DIST=dist
all: linux-amd64
linux-amd64:
GOOS=linux GOARCH=amd64 go build -o $(DIST)/amd64/getenv
zip $(DIST)/getenv-$(VERSION)-linux-amd64.zip $(DIST)/amd64/getenv
+6 -6
View File
@@ -1,9 +1,9 @@
## What's this? ## What's this?
`getenv` will fetch GCE metadata attributes and print them as K=V pairs ready to be `exported` as environment variables. `getenv` will fetch Google Cloud (Compute Engine) metadata attributes and print them as K=V pairs ready to be `exported` as environment variables.
Example: Example:
```bash ```bash
./getenv getenv
MY_VARIABLE=SOMEVALUE MY_VARIABLE=SOMEVALUE
``` ```
@@ -11,11 +11,11 @@ MY_VARIABLE=SOMEVALUE
Export all metadata attributes as ENV variables for current shell session and store them in /etc/environment for future sessions: Export all metadata attributes as ENV variables for current shell session and store them in /etc/environment for future sessions:
```bash ```bash
export $(./getenv) export $(getenv)
./getenv 1>> /etc/environment getenv 1>> /etc/environment
``` ```
or or
```bash ```bash
./getenv 1>> /etc/environment getenv 1>> /etc/environment
source /etc/environment source /etc/environment
``` ```
+7 -4
View File
@@ -11,7 +11,8 @@ import (
) )
func main() { func main() {
prefix := flag.String("prefix", "", "Prefix to append to the ENV var names in the output") prefix := flag.String("prefix", "", "Only fetch metadata items that match this prefix")
prepend := flag.String("prepend", "", "Prepend this string to the ENV var names in the output")
flag.Parse() flag.Parse()
var client = &http.Client{ var client = &http.Client{
@@ -47,12 +48,14 @@ func main() {
} }
for k, v := range items { for k, v := range items {
vars[strings.ToUpper(k)] = v if strings.HasPrefix(k, *prefix) {
vars[strings.ToUpper(k)] = v
}
} }
for k, v := range vars { for k, v := range vars {
if *prefix != "" { if *prepend != "" {
fmt.Printf("%s_%s=%s\n", *prefix, k, v) fmt.Printf("%s_%s=%s\n", strings.ToUpper(*prepend), k, v)
} else { } else {
fmt.Printf("%s=%s\n", k, v) fmt.Printf("%s=%s\n", k, v)
} }