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
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
+5 -5
View File
@@ -1,9 +1,9 @@
## 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:
```bash
./getenv
getenv
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:
```bash
export $(./getenv)
./getenv 1>> /etc/environment
export $(getenv)
getenv 1>> /etc/environment
```
or
```bash
./getenv 1>> /etc/environment
getenv 1>> /etc/environment
source /etc/environment
```
+7 -4
View File
@@ -11,7 +11,8 @@ import (
)
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()
var client = &http.Client{
@@ -47,12 +48,14 @@ func main() {
}
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 {
if *prefix != "" {
fmt.Printf("%s_%s=%s\n", *prefix, k, v)
if *prepend != "" {
fmt.Printf("%s_%s=%s\n", strings.ToUpper(*prepend), k, v)
} else {
fmt.Printf("%s=%s\n", k, v)
}