Skip to content

Commit 359d7c1

Browse files
committed
come along
1 parent 0601d2f commit 359d7c1

File tree

4 files changed

+41
-1
lines changed

4 files changed

+41
-1
lines changed

.gitignore

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,7 @@ EntitlementJail.app/
33
EntitlementJail.zip
44

55
# da mac
6-
.DS_Store
6+
.DS_Store
7+
8+
# runner
9+
runner/target

runner/Cargo.lock

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

runner/Cargo.toml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
[package]
2+
name = "runner"
3+
version = "0.1.0"
4+
edition = "2024"
5+
6+
[dependencies]

runner/src/main.rs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
use std::{env, process::Command};
2+
use std::os::unix::process::CommandExt;
3+
use std::path::PathBuf;
4+
5+
fn main() {
6+
let args: Vec<String> = env::args().skip(1).collect();
7+
8+
// Decide what to run – simplest: first arg is the child binary.
9+
if args.is_empty() {
10+
eprintln!("usage: entitlement-jail <cmd> [args...]");
11+
std::process::exit(2);
12+
}
13+
14+
let cmd_path = PathBuf::from(&args[0]);
15+
let rest = &args[1..];
16+
17+
let mut cmd = Command::new(&cmd_path);
18+
cmd.args(rest);
19+
20+
// Option A: exec (replace the process, keeps stdio)
21+
let err = cmd.exec();
22+
eprintln!("exec failed: {err}");
23+
std::process::exit(127);
24+
}

0 commit comments

Comments
 (0)