PoC daemon edition
This commit is contained in:
parent
16f2649334
commit
ac53850fd1
2 changed files with 104 additions and 18 deletions
20
src/lib.rs
20
src/lib.rs
|
|
@ -35,6 +35,8 @@ pub(crate) mod prelude {
|
|||
|
||||
pub use bstr::ByteSlice;
|
||||
|
||||
pub use itertools::Itertools;
|
||||
|
||||
pub use rustix::io::Errno;
|
||||
|
||||
pub use tap::{Pipe, Tap, TapFallible, TapOptional};
|
||||
|
|
@ -133,17 +135,27 @@ pub fn do_append(args: Arc<Args>, append_args: AppendCmd) -> Result<(), BoxDynEr
|
|||
}
|
||||
|
||||
//#[tracing::instrument(level = "debug")]
|
||||
pub fn do_daemon(_args: Arc<Args>, daemon_args: DaemonCmd) -> Result<(), BoxDynError> {
|
||||
pub fn do_daemon(args: Arc<Args>, daemon_args: DaemonCmd) -> Result<(), BoxDynError> {
|
||||
let config_file = Path::new(&args.file);
|
||||
let config_file: PathBuf = if config_file.is_relative() && !config_file.starts_with("./") {
|
||||
iter::once(OsStr::new("./"))
|
||||
.chain(config_file.iter())
|
||||
.collect()
|
||||
} else {
|
||||
config_file.to_path_buf()
|
||||
};
|
||||
let config_file: Arc<Path> = Arc::from(config_file);
|
||||
|
||||
// FIXME: make configurable?
|
||||
let _ = rustix::process::umask(Mode::from_bits_retain(0o600).complement());
|
||||
|
||||
let mut daemon = match daemon_args {
|
||||
DaemonCmd { stdin: true, .. } => Daemon::from_stdin(),
|
||||
DaemonCmd { socket: None, .. } => Daemon::open_default_socket()?,
|
||||
DaemonCmd { stdin: true, .. } => Daemon::from_stdin(config_file),
|
||||
DaemonCmd { socket: None, .. } => Daemon::open_default_socket(config_file)?,
|
||||
DaemonCmd {
|
||||
socket: Some(socket),
|
||||
..
|
||||
} => Daemon::from_unix_socket_path(&socket)?,
|
||||
} => Daemon::from_unix_socket_path(config_file, &socket)?,
|
||||
};
|
||||
|
||||
daemon.enter_loop().unwrap();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue