Browse Source

Make PHP version configurable

master
Adrian Heine 3 years ago
parent
commit
bc74acc4ab
  1. 8
      src/symbols/factory.rs
  2. 16
      src/symbols/systemd/reload.rs

8
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),
)
}

16
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<C: CommandRunner> Symbol for ReloadService<'_, C> {
impl<S: AsRef<str>, C: CommandRunner> Symbol for ReloadService<'_, S, C> {
fn target_reached(&self) -> Result<bool, Box<dyn Error>> {
Ok(true)
}
@ -26,7 +26,7 @@ impl<C: CommandRunner> Symbol for ReloadService<'_, C> {
fn execute(&self) -> Result<(), Box<dyn Error>> {
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<dyn Action + 'b> {
@ -41,8 +41,8 @@ impl<C: CommandRunner> Symbol for ReloadService<'_, C> {
}
}
impl<C: CommandRunner> fmt::Display for ReloadService<'_, C> {
impl<S: AsRef<str>, 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())
}
}
Loading…
Cancel
Save