From bc74acc4ab8577869203b7e77e229fe91f54ff86 Mon Sep 17 00:00:00 2001 From: Adrian Heine Date: Thu, 5 Dec 2019 16:38:22 +0100 Subject: [PATCH] Make PHP version configurable --- src/symbols/factory.rs | 8 ++++++-- src/symbols/systemd/reload.rs | 16 ++++++++-------- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/src/symbols/factory.rs b/src/symbols/factory.rs index f823f48..53c6222 100644 --- a/src/symbols/factory.rs +++ b/src/symbols/factory.rs @@ -32,6 +32,9 @@ pub trait Policy { fn acme_user(&self) -> Cow<'_, str> { "acme".into() } + fn php_version(&self) -> &'static str { + "7.0" + } } pub struct DefaultPolicy; @@ -92,9 +95,10 @@ impl<'b, C: 'b + CommandRunner, P: 'b + Policy> SymbolFactory<'b, C, P> { fn get_php_fpm_pool<'a>(&'a self, user_name: &str) -> impl Symbol + 'a { let socket = self.get_php_fpm_pool_socket_path(user_name); + let php_version = self.policy.php_version(); Hook::new( File::new( - format!("/etc/php/7.0/fpm/pool.d/{}.conf", user_name), + format!("/etc/php/{}/fpm/pool.d/{}.conf", php_version, user_name), format!( "[{0}] @@ -111,7 +115,7 @@ env[PATH] = /usr/local/bin:/usr/bin:/bin socket.to_str().unwrap() ), ), - ReloadService::new("php7.0-fpm", self.command_runner), + ReloadService::new(format!("php{}-fpm", php_version), self.command_runner), ) } diff --git a/src/symbols/systemd/reload.rs b/src/symbols/systemd/reload.rs index 354385c..716849b 100644 --- a/src/symbols/systemd/reload.rs +++ b/src/symbols/systemd/reload.rs @@ -4,13 +4,13 @@ use std::fmt; use crate::command_runner::CommandRunner; use crate::symbols::{Action, OwnedSymbolAction, Symbol, SymbolAction, SymbolRunner}; -pub struct ReloadService<'a, C: CommandRunner> { - service: &'a str, +pub struct ReloadService<'a, S, C: CommandRunner> { + service: S, command_runner: &'a C, } -impl<'a, C: CommandRunner> ReloadService<'a, C> { - pub fn new(service: &'a str, command_runner: &'a C) -> Self { +impl<'a, S, C: CommandRunner> ReloadService<'a, S, C> { + pub fn new(service: S, command_runner: &'a C) -> Self { ReloadService { service, command_runner, @@ -18,7 +18,7 @@ impl<'a, C: CommandRunner> ReloadService<'a, C> { } } -impl Symbol for ReloadService<'_, C> { +impl, C: CommandRunner> Symbol for ReloadService<'_, S, C> { fn target_reached(&self) -> Result> { Ok(true) } @@ -26,7 +26,7 @@ impl Symbol for ReloadService<'_, C> { fn execute(&self) -> Result<(), Box> { self .command_runner - .run_successfully("systemctl", args!["reload-or-restart", self.service]) + .run_successfully("systemctl", args!["reload-or-restart", self.service.as_ref()]) } fn as_action<'b>(&'b self, runner: &'b dyn SymbolRunner) -> Box { @@ -41,8 +41,8 @@ impl Symbol for ReloadService<'_, C> { } } -impl fmt::Display for ReloadService<'_, C> { +impl, C: CommandRunner> fmt::Display for ReloadService<'_, S, C> { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> Result<(), fmt::Error> { - write!(f, "Reload service {}", self.service) + write!(f, "Reload service {}", self.service.as_ref()) } }