commit aba755dc8135e62540a5fcf4f856a17a84e835a6 Author: Adam Mohammed Date: Fri May 24 16:35:20 2024 -0400 Initial commit diff --git a/.envrc b/.envrc new file mode 100644 index 0000000..a96513c --- /dev/null +++ b/.envrc @@ -0,0 +1,2 @@ +export GUIX_PROFILE="$HOME/.guix-extra-profiles/go-build/go-build" +source "$GUIX_PROFILE/etc/profile" diff --git a/README.md b/README.md new file mode 100644 index 0000000..e69de29 diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..1e9d9e0 --- /dev/null +++ b/go.mod @@ -0,0 +1,3 @@ +module go.fixergrid.net/pguri2env + +go 1.21.5 diff --git a/main.go b/main.go new file mode 100644 index 0000000..5b8788e --- /dev/null +++ b/main.go @@ -0,0 +1,35 @@ +package main + +import ( + "bufio" + "fmt" + "net/url" + "os" +) + +func main() { + reader := bufio.NewScanner(os.Stdin) + if !reader.Scan() { + if reader.Err() != nil { + fmt.Fprintf(os.Stderr, "No input detected") + os.Exit(1) + } + } + line := reader.Text() + + uri, err := url.Parse(line) + if err != nil { + fmt.Fprintf(os.Stderr, "failed to parse input: %s", err) + os.Exit(1) + } + + user := uri.User.Username() + pw, _ := uri.User.Password() + host := uri.Host + db := uri.EscapedPath() + + fmt.Printf("export PGUSER=%s\n", user) + fmt.Printf("export PGPASSWORD=%s\n", pw) + fmt.Printf("export PGHOST=%s\n", host) + fmt.Printf("export PGDATABASE=%s\n", db) +} diff --git a/manifest.scm b/manifest.scm new file mode 100644 index 0000000..7b908a2 --- /dev/null +++ b/manifest.scm @@ -0,0 +1,8 @@ +(specifications->manifest + '( + "go@1.21" + "git" + "bash" + "glibc-locales" + "nss-certs" + "curl"))