fix service restart: add codesign and make deploy target
macOS kills unsigned binaries, so numa service restart failed after copying a new build. Added ad-hoc codesign to restart flow and a make deploy target that handles the full build-copy-sign-restart cycle. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
10
Makefile
10
Makefile
@@ -1,4 +1,4 @@
|
|||||||
.PHONY: all build lint fmt check test clean
|
.PHONY: all build lint fmt check test clean deploy
|
||||||
|
|
||||||
all: lint build
|
all: lint build
|
||||||
|
|
||||||
@@ -18,3 +18,11 @@ test:
|
|||||||
|
|
||||||
clean:
|
clean:
|
||||||
cargo clean
|
cargo clean
|
||||||
|
|
||||||
|
deploy:
|
||||||
|
cargo build --release
|
||||||
|
sudo cp target/release/numa /usr/local/bin/numa
|
||||||
|
sudo codesign -f -s - /usr/local/bin/numa
|
||||||
|
sudo kill $$(pgrep -f /usr/local/bin/numa) 2>/dev/null || true
|
||||||
|
@sleep 1
|
||||||
|
@dig @127.0.0.1 google.com +short +time=3 > /dev/null && echo "Service restarted successfully" || echo "Warning: DNS not responding yet"
|
||||||
|
|||||||
@@ -434,10 +434,17 @@ pub fn restart_service() -> Result<(), String> {
|
|||||||
.output();
|
.output();
|
||||||
match output {
|
match output {
|
||||||
Ok(o) if o.status.success() => {
|
Ok(o) if o.status.success() => {
|
||||||
|
eprintln!(" Tip: use 'make deploy' instead — handles codesign + restart.\n");
|
||||||
|
// Codesign, then kill service. Launchd KeepAlive respawns it.
|
||||||
|
// This will kill us too (we ARE /usr/local/bin/numa), so
|
||||||
|
// codesign and print output first.
|
||||||
|
let _ = std::process::Command::new("codesign")
|
||||||
|
.args(["-f", "-s", "-", "/usr/local/bin/numa"])
|
||||||
|
.output(); // use output() to suppress codesign stderr
|
||||||
|
eprintln!(" Service restarting → {}\n", version);
|
||||||
let _ = std::process::Command::new("pkill")
|
let _ = std::process::Command::new("pkill")
|
||||||
.args(["-f", "/usr/local/bin/numa"])
|
.args(["-f", "/usr/local/bin/numa"])
|
||||||
.status();
|
.status();
|
||||||
eprintln!(" Service restarting → {}\n", version);
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
_ => Err("Service is not installed. Run 'sudo numa service start' first.".to_string()),
|
_ => Err("Service is not installed. Run 'sudo numa service start' first.".to_string()),
|
||||||
|
|||||||
Reference in New Issue
Block a user