From 7ed63a314749d5d9e59318f2c228aeaf0d87a06c Mon Sep 17 00:00:00 2001 From: Anton Yemelyanov Date: Wed, 24 Jul 2024 00:51:28 +0300 Subject: [PATCH] detect and disable apache2 on initial install --- Cargo.lock | 2 +- Cargo.toml | 2 +- README.md | 2 +- src/base.rs | 9 +++++++++ src/resolver.rs | 4 ++-- src/systemd.rs | 4 ++-- 6 files changed, 16 insertions(+), 7 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1625f8e..299e117 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1465,7 +1465,7 @@ dependencies = [ [[package]] name = "khost" -version = "0.0.6" +version = "0.0.7" dependencies = [ "addr", "bytes", diff --git a/Cargo.toml b/Cargo.toml index 1059524..8b992bc 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "khost" -version = "0.0.6" +version = "0.0.7" edition = "2021" authors = ["Kaspa developers"] license = "MIT OR Apache-2.0" diff --git a/README.md b/README.md index 9f682ce..ee503cd 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ login kaspa As `kaspa` user: ```bash -curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh +curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y source "$HOME/.cargo/env" cargo install khost khost diff --git a/src/base.rs b/src/base.rs index 37843da..4b9e5bf 100644 --- a/src/base.rs +++ b/src/base.rs @@ -11,6 +11,15 @@ pub fn install(ctx: &Context, force: bool) -> Result<()> { return Ok(()); } + if systemd::is_active("apache2").unwrap_or(false) { + log::warning("Detected conflicting apache2 service.")?; + step("Stopping apache2...", || { + sudo!("systemctl", "stop", "apache2").unchecked().run()?; + sudo!("systemctl", "disable", "apache2").unchecked().run()?; + Ok(()) + })?; + } + log::remark(format!( "Upgrading {}...", ctx.system diff --git a/src/resolver.rs b/src/resolver.rs index a5cdfca..ef2494f 100644 --- a/src/resolver.rs +++ b/src/resolver.rs @@ -327,8 +327,8 @@ pub fn reconfigure(ctx: &mut Context, _force: bool) -> Result<()> { if !resolver::is_installed(ctx) { resolver::install(ctx)?; } else if config.enabled() - && systemd::is_enabled(&config.service_name())? - && systemd::is_active(&config.service_name())? + && systemd::is_enabled(config.service_name())? + && systemd::is_active(config.service_name())? { restart(ctx)?; } else { diff --git a/src/systemd.rs b/src/systemd.rs index d5ad595..40bd5e4 100644 --- a/src/systemd.rs +++ b/src/systemd.rs @@ -74,14 +74,14 @@ pub fn status(service: &S) -> Result { sudo!("systemctl", "status", service.service_name()).read() } -pub fn is_active(service: &S) -> Result { +pub fn is_active(service: S) -> Result { let output = sudo!("systemctl", "is-active", service.to_string()) .unchecked() .read()?; Ok(output.trim() == "active") } -pub fn is_enabled(service: &S) -> Result { +pub fn is_enabled(service: S) -> Result { let output = sudo!("systemctl", "is-enabled", service.to_string()) .unchecked() .read()?;