func setupMceDir()

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
}