git.delta.rocks / remowt / refs/commits / 023a07f7fe9b

difftreelog

refactor drop NixDaemon::connect_daemon

nxkzssyuYaroslav Bolyukin4 days agoparent: #6d9cf16.patch.diff
in: trunk

4 files changed

modifiedCargo.lockdiffbeforeafterboth
308308
309[[package]]309[[package]]
310name = "bifrostlink"310name = "bifrostlink"
311version = "0.2.5"311version = "0.2.6"
312source = "registry+https://github.com/rust-lang/crates.io-index"312source = "registry+https://github.com/rust-lang/crates.io-index"
313checksum = "910f9286588d13e3dbdbbc1ad4d292656e704bc93e1f41b8a13b48e3a8e95f39"313checksum = "2fb01af731c11dd31b23783a83a36a29f644cc1972481f6fa4f4fabc709079eb"
314dependencies = [314dependencies = [
315 "async-trait",315 "async-trait",
316 "async_fn_traits",316 "async_fn_traits",
327327
328[[package]]328[[package]]
329name = "bifrostlink-macros"329name = "bifrostlink-macros"
330version = "0.2.5"330version = "0.2.6"
331source = "registry+https://github.com/rust-lang/crates.io-index"331source = "registry+https://github.com/rust-lang/crates.io-index"
332checksum = "a0ea5c423c3831c523c8ef78debdf6a64e72b21ec92148a44163a4c25c05dfd0"332checksum = "8c4b7a5fb38b36bd81910c17ebf369f9296e508d92b1277a768a63c8a2254fdb"
333dependencies = [333dependencies = [
334 "proc-macro2",334 "proc-macro2",
335 "quote",335 "quote",
338338
339[[package]]339[[package]]
340name = "bifrostlink-ports"340name = "bifrostlink-ports"
341version = "0.2.5"341version = "0.2.6"
342source = "registry+https://github.com/rust-lang/crates.io-index"342source = "registry+https://github.com/rust-lang/crates.io-index"
343checksum = "9e3a9a01ec1b8bd7d44b47cd0183a1465880e241027d9f5afcb076e11704ec70"343checksum = "977acfcb8ed3c24ab7c2f76fb3eeebff1533c72708733ce6020f2501980b7cf2"
344dependencies = [344dependencies = [
345 "bifrostlink",345 "bifrostlink",
346 "bytes",346 "bytes",
18351835
1836[[package]]1836[[package]]
1837name = "polkit-backend"1837name = "polkit-backend"
1838version = "0.1.6"1838version = "0.1.7"
1839dependencies = [1839dependencies = [
1840 "anyhow",1840 "anyhow",
1841 "clap",1841 "clap",
20552055
2056[[package]]2056[[package]]
2057name = "remowt-agent"2057name = "remowt-agent"
2058version = "0.1.6"2058version = "0.1.7"
2059dependencies = [2059dependencies = [
2060 "anyhow",2060 "anyhow",
2061 "bifrostlink",2061 "bifrostlink",
20832083
2084[[package]]2084[[package]]
2085name = "remowt-client"2085name = "remowt-client"
2086version = "0.1.6"2086version = "0.1.7"
2087dependencies = [2087dependencies = [
2088 "anyhow",2088 "anyhow",
2089 "bifrostlink",2089 "bifrostlink",
21062106
2107[[package]]2107[[package]]
2108name = "remowt-endpoints"2108name = "remowt-endpoints"
2109version = "0.1.6"2109version = "0.1.7"
2110dependencies = [2110dependencies = [
2111 "anyhow",2111 "anyhow",
2112 "bifrostlink",2112 "bifrostlink",
21242124
2125[[package]]2125[[package]]
2126name = "remowt-link-shared"2126name = "remowt-link-shared"
2127version = "0.1.6"2127version = "0.1.7"
2128dependencies = [2128dependencies = [
2129 "bifrostlink",2129 "bifrostlink",
2130 "bytes",2130 "bytes",
21382138
2139[[package]]2139[[package]]
2140name = "remowt-plugin"2140name = "remowt-plugin"
2141version = "0.1.6"2141version = "0.1.7"
2142dependencies = [2142dependencies = [
2143 "anyhow",2143 "anyhow",
2144 "bifrostlink",2144 "bifrostlink",
21522152
2153[[package]]2153[[package]]
2154name = "remowt-polkit-shared"2154name = "remowt-polkit-shared"
2155version = "0.1.6"2155version = "0.1.7"
2156dependencies = [2156dependencies = [
2157 "nix",2157 "nix",
2158 "serde",2158 "serde",
21612161
2162[[package]]2162[[package]]
2163name = "remowt-ssh"2163name = "remowt-ssh"
2164version = "0.1.6"2164version = "0.1.7"
2165dependencies = [2165dependencies = [
2166 "anyhow",2166 "anyhow",
2167 "async-trait",2167 "async-trait",
21892189
2190[[package]]2190[[package]]
2191name = "remowt-ui-prompt"2191name = "remowt-ui-prompt"
2192version = "0.1.6"2192version = "0.1.7"
2193dependencies = [2193dependencies = [
2194 "anyhow",2194 "anyhow",
2195 "bifrostlink",2195 "bifrostlink",
modifiedCargo.tomldiffbeforeafterboth
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -3,18 +3,18 @@
 resolver = "2"
 
 [workspace.package]
-version = "0.1.6"
+version = "0.1.7"
 license = "MIT"
 edition = "2021"
 repository = "https://git.delta.rocks/r/remowt"
 
 [workspace.dependencies]
-remowt-client = { version = "0.1.6", path = "crates/remowt-client" }
-remowt-polkit-shared = { version = "0.1.6", path = "crates/polkit-shared" }
-remowt-link-shared = { version = "0.1.6", path = "crates/remowt-link-shared" }
-remowt-plugin = { version = "0.1.6", path = "crates/remowt-plugin" }
-remowt-ui-prompt = { version = "0.1.6", path = "crates/remowt-ui-prompt" }
-remowt-endpoints = { version = "0.1.6", path = "crates/remowt-endpoints" }
+remowt-client = { version = "0.1.7", path = "crates/remowt-client" }
+remowt-polkit-shared = { version = "0.1.7", path = "crates/polkit-shared" }
+remowt-link-shared = { version = "0.1.7", path = "crates/remowt-link-shared" }
+remowt-plugin = { version = "0.1.7", path = "crates/remowt-plugin" }
+remowt-ui-prompt = { version = "0.1.7", path = "crates/remowt-ui-prompt" }
+remowt-endpoints = { version = "0.1.7", path = "crates/remowt-endpoints" }
 
 bifrostlink = "0.2.0"
 bifrostlink-macros = "0.2.0"
modifiedcrates/remowt-client/src/lib.rsdiffbeforeafterboth
--- a/crates/remowt-client/src/lib.rs
+++ b/crates/remowt-client/src/lib.rs
@@ -427,7 +427,10 @@
 				};
 
 				let (tool, flags) = self.detect_escalation().await?;
-				let mut args: Vec<String> = flags.iter().map(|f| (*f).to_owned()).collect();
+				let mut args: Vec<String> = Vec::new();
+				args.push("-w".to_owned());
+				args.push(tool.to_owned());
+				args.extend(flags.iter().copied().map(str::to_owned));
 				args.push(agent_path);
 				args.push("real-agent".to_owned());
 				args.push("--privileged".to_owned());
@@ -437,7 +440,7 @@
 
 				let child = self
 					.spawn(SpawnOptions {
-						program: tool.to_owned(),
+						program: "setsid".to_owned(),
 						args,
 						stdin: StdioMode::Pipe,
 						stdout: StdioMode::Pipe,
modifiedcrates/remowt-endpoints/src/nix_daemon.rsdiffbeforeafterboth
--- a/crates/remowt-endpoints/src/nix_daemon.rs
+++ b/crates/remowt-endpoints/src/nix_daemon.rs
@@ -6,8 +6,6 @@
 use std::result::Result;
 use tokio::process::Command;
 
-pub const NIX_DAEMON_SOCKET: &str = "/nix/var/nix/daemon-socket/socket";
-
 pub struct NixDaemon;
 
 #[derive(Serialize, Deserialize, Debug, thiserror::Error)]
@@ -20,22 +18,6 @@
 
 #[endpoints(ns = 4)]
 impl NixDaemon {
-	#[endpoints(id = 1)]
-	async fn connect_daemon(&self, socket: String) -> Result<(), Error> {
-		let mut daemon = tokio::net::UnixStream::connect(NIX_DAEMON_SOCKET)
-			.await
-			.map_err(|e| Error::DaemonUnavailable(e.to_string()))?;
-		let mut tunnel = tokio::net::UnixStream::connect(&socket)
-			.await
-			.map_err(|e| Error::Tunnel(e.to_string()))?;
-		tokio::spawn(async move {
-			if let Err(e) = tokio::io::copy_bidirectional(&mut daemon, &mut tunnel).await {
-				tracing::debug!("nix daemon tunnel ended: {e}");
-			}
-		});
-		Ok(())
-	}
-
 	#[endpoints(id = 2)]
 	async fn serve_store(&self, store: String, socket: String) -> Result<(), Error> {
 		let mut child = Command::new("nix-daemon")