Formatting
This commit is contained in:
+21
-11
@@ -131,12 +131,12 @@ async fn main() -> Result<(), std::io::Error> {
|
|||||||
// as PID 1 for this. For native macOS/Linux, poll waitpid(-1, WNOHANG) in a
|
// as PID 1 for this. For native macOS/Linux, poll waitpid(-1, WNOHANG) in a
|
||||||
// background thread so orphaned grandchildren don't accumulate as zombies.
|
// background thread so orphaned grandchildren don't accumulate as zombies.
|
||||||
#[cfg(unix)]
|
#[cfg(unix)]
|
||||||
std::thread::spawn(|| loop {
|
std::thread::spawn(|| {
|
||||||
// SAFETY: waitpid(-1, ...) with WNOHANG is always safe to call.
|
loop {
|
||||||
unsafe {
|
// SAFETY: waitpid(-1, ...) with WNOHANG is always safe to call.
|
||||||
while libc::waitpid(-1, std::ptr::null_mut(), libc::WNOHANG) > 0 {}
|
unsafe { while libc::waitpid(-1, std::ptr::null_mut(), libc::WNOHANG) > 0 {} }
|
||||||
|
std::thread::sleep(std::time::Duration::from_secs(5));
|
||||||
}
|
}
|
||||||
std::thread::sleep(std::time::Duration::from_secs(5));
|
|
||||||
});
|
});
|
||||||
|
|
||||||
let app_state = Arc::new(SessionState::default());
|
let app_state = Arc::new(SessionState::default());
|
||||||
@@ -151,9 +151,7 @@ async fn main() -> Result<(), std::io::Error> {
|
|||||||
}
|
}
|
||||||
let _ = std::fs::rename(&legacy_store_path, &store_path);
|
let _ = std::fs::rename(&legacy_store_path, &store_path);
|
||||||
}
|
}
|
||||||
let store = Arc::new(
|
let store = Arc::new(JsonFileStore::from_path(store_path).map_err(std::io::Error::other)?);
|
||||||
JsonFileStore::from_path(store_path).map_err(std::io::Error::other)?,
|
|
||||||
);
|
|
||||||
|
|
||||||
// Collect CLI args, skipping the binary name (argv[0]).
|
// Collect CLI args, skipping the binary name (argv[0]).
|
||||||
let raw_args: Vec<String> = std::env::args().skip(1).collect();
|
let raw_args: Vec<String> = std::env::args().skip(1).collect();
|
||||||
@@ -193,7 +191,10 @@ async fn main() -> Result<(), std::io::Error> {
|
|||||||
let init_root = explicit_path.unwrap_or_else(|| cwd.clone());
|
let init_root = explicit_path.unwrap_or_else(|| cwd.clone());
|
||||||
if !init_root.exists() {
|
if !init_root.exists() {
|
||||||
std::fs::create_dir_all(&init_root).unwrap_or_else(|e| {
|
std::fs::create_dir_all(&init_root).unwrap_or_else(|e| {
|
||||||
eprintln!("error: cannot create directory {}: {e}", init_root.display());
|
eprintln!(
|
||||||
|
"error: cannot create directory {}: {e}",
|
||||||
|
init_root.display()
|
||||||
|
);
|
||||||
std::process::exit(1);
|
std::process::exit(1);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -837,7 +838,11 @@ name = "coder"
|
|||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn parse_port_with_path() {
|
fn parse_port_with_path() {
|
||||||
let args = vec!["--port".to_string(), "4200".to_string(), "/some/path".to_string()];
|
let args = vec![
|
||||||
|
"--port".to_string(),
|
||||||
|
"4200".to_string(),
|
||||||
|
"/some/path".to_string(),
|
||||||
|
];
|
||||||
let result = parse_cli_args(&args).unwrap();
|
let result = parse_cli_args(&args).unwrap();
|
||||||
assert_eq!(result.port, Some(4200));
|
assert_eq!(result.port, Some(4200));
|
||||||
assert_eq!(result.path, Some("/some/path".to_string()));
|
assert_eq!(result.path, Some("/some/path".to_string()));
|
||||||
@@ -865,7 +870,12 @@ name = "coder"
|
|||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn parse_init_with_path_and_port() {
|
fn parse_init_with_path_and_port() {
|
||||||
let args = vec!["init".to_string(), "--port".to_string(), "3000".to_string(), "/my/project".to_string()];
|
let args = vec![
|
||||||
|
"init".to_string(),
|
||||||
|
"--port".to_string(),
|
||||||
|
"3000".to_string(),
|
||||||
|
"/my/project".to_string(),
|
||||||
|
];
|
||||||
let result = parse_cli_args(&args).unwrap();
|
let result = parse_cli_args(&args).unwrap();
|
||||||
assert!(result.init);
|
assert!(result.init);
|
||||||
assert_eq!(result.port, Some(3000));
|
assert_eq!(result.port, Some(3000));
|
||||||
|
|||||||
Reference in New Issue
Block a user