mirror of
https://github.com/kairos-io/kairos-agent.git
synced 2025-04-28 03:32:27 +00:00
Seems in certain condition the datasource is kicking late and serving the datasource not fast as wanted. We make sure to pull it before install, so we also give chance to convoluted setups to pull configs. Also wires up autoinstall tests to CI
44 lines
838 B
Go
44 lines
838 B
Go
package utils
|
|
|
|
import (
|
|
"bytes"
|
|
"io/ioutil"
|
|
"os"
|
|
"os/exec"
|
|
|
|
"github.com/joho/godotenv"
|
|
)
|
|
|
|
func SH(c string) (string, error) {
|
|
o, err := exec.Command("/bin/sh", "-c", c).CombinedOutput()
|
|
return string(o), err
|
|
}
|
|
|
|
func WriteEnv(envFile string, config map[string]string) error {
|
|
content, _ := ioutil.ReadFile(envFile)
|
|
env, _ := godotenv.Unmarshal(string(content))
|
|
|
|
for key, val := range config {
|
|
env[key] = val
|
|
}
|
|
|
|
return godotenv.Write(env, envFile)
|
|
}
|
|
|
|
func Shell() *exec.Cmd {
|
|
cmd := exec.Command("/bin/sh")
|
|
cmd.Stdout = os.Stdout
|
|
cmd.Stderr = os.Stderr
|
|
cmd.Stdin = os.Stdin
|
|
return cmd
|
|
}
|
|
|
|
func ShellSTDIN(s, c string) (string, error) {
|
|
cmd := exec.Command("/bin/sh", "-c", c)
|
|
cmd.Stdout = os.Stdout
|
|
cmd.Stderr = os.Stderr
|
|
cmd.Stdin = bytes.NewBuffer([]byte(s))
|
|
o, err := cmd.CombinedOutput()
|
|
return string(o), err
|
|
}
|