Added support for env & secrets

This commit is contained in:
Shubham Agrawal 2021-10-07 18:04:00 +05:30
parent b127585fad
commit 040dd66e56

View File

@ -1,36 +1,34 @@
package utils package utils
import ( import (
"fmt"
"io/ioutil"
"os" "os"
"strings" "strings"
"github.com/joho/godotenv"
"github.com/pkg/errors" "github.com/pkg/errors"
) )
func CreateEnvAndSecretFile(envFile, secretFile string, secrets []string) error { func CreateEnvAndSecretFile(envFile, secretFile string, secrets []string) error {
envVars := getEnvVars() envVars := getEnvVars()
envBuf := "" actionEnvVars := make(map[string]string)
for key, val := range envVars { for key, val := range envVars {
if !strings.HasPrefix(key, "PLUGIN_") && !Exists(secrets, key) { if !strings.HasPrefix(key, "PLUGIN_") && !Exists(secrets, key) {
envBuf += fmt.Sprintf("%s=%s\n", key, val) actionEnvVars[key] = val
} }
} }
secretBuf := "" secretEnvVars := make(map[string]string)
for _, secretName := range secrets { for _, secretName := range secrets {
if os.Getenv(secretName) != "" { if os.Getenv(secretName) != "" {
secretBuf += fmt.Sprintf("%s=%s\n", secretName, os.Getenv(secretName)) secretEnvVars[secretName] = os.Getenv(secretName)
} }
} }
if err := ioutil.WriteFile(envFile, []byte(envBuf), 0644); err != nil { if err := godotenv.Write(actionEnvVars, envFile); err != nil {
return errors.Wrap(err, "failed to write environment variables file") return errors.Wrap(err, "failed to write environment variables file")
} }
if err := godotenv.Write(secretEnvVars, secretFile); err != nil {
if err := ioutil.WriteFile(secretFile, []byte(secretBuf), 0644); err != nil {
return errors.Wrap(err, "failed to write secret variables file") return errors.Wrap(err, "failed to write secret variables file")
} }
return nil return nil