package sandbox import ( "encoding/base64" "encoding/json" "os" ) // NativeCommand encodes a native sandbox helper invocation. func NativeCommand(cfg *Config, originalCmd []string, cwd string, env map[string]string) ([]string, error) { envCopy := make(map[string]string, len(env)) for k, v := range env { envCopy[k] = v } data, err := json.Marshal(helperPolicy{Config: *cfg, CWD: cwd, Env: envCopy, Command: originalCmd}) if err != nil { return nil, err } exe, err := os.Executable() if err != nil { return nil, err } return []string{exe, "sandbox-exec", base64.RawStdEncoding.EncodeToString(data)}, nil } // pathExists checks if a file or directory exists func pathExists(path string) bool { _, err := os.Stat(path) return err == nil }