in command-runner/pkg/runner/container_command_executor.go [218:241]
func setupMceDir(env []string, containerDefaultDir string) (string, error) {
mceDir, err := os.MkdirTemp(fs.TmpDir(), "mce")
if err != nil {
return "", err
}
if err := os.MkdirAll(filepath.Join(mceDir, "tmp"), 0755); err != nil {
return "", fmt.Errorf("unable to create tmp dir: %w", err)
}
if err := os.WriteFile(filepath.Join(mceDir, "tmp", "init.env"), []byte(strings.Join(env, "\n")), 00777); err != nil /* #nosec G306 */ {
return "", err
}
if err := os.WriteFile(filepath.Join(mceDir, "tmp", "env.sh"), []byte(""), 00666); err != nil /* #nosec G306 */ {
return "", err
}
if err := os.WriteFile(filepath.Join(mceDir, "tmp", "dir.txt"), []byte(containerDefaultDir), 00666); err != nil /* #nosec G306 */ {
return "", err
}
envout := `. /tmp/mce/tmp/env.sh
env -0 | while IFS='=' read -r -d '' n v; do printf "::set-output name=%s::%s\n" "$n" "$v"; done`
if err := os.WriteFile(filepath.Join(mceDir, "tmp", "envout.sh"), []byte(envout), 00755); err != nil /* #nosec G306 */ {
return "", err
}
return mceDir, nil
}