Cargo fix
This commit is contained in:
parent
5505c09db4
commit
9bab810b91
38 changed files with 235 additions and 235 deletions
|
|
@ -33,7 +33,7 @@ impl<E: Error> Error for NodeJsSystemdUserServiceError<E> {
|
|||
NodeJsSystemdUserServiceError::ActivationFailed(_) => "Activation of service failed"
|
||||
}
|
||||
}
|
||||
fn cause(&self) -> Option<&Error> {
|
||||
fn cause(&self) -> Option<&dyn Error> {
|
||||
match self {
|
||||
NodeJsSystemdUserServiceError::ExecError(ref e) => Some(e),
|
||||
_ => None
|
||||
|
|
@ -60,7 +60,7 @@ pub struct NodeJsSystemdUserService<'a, C, R> where C: Deref<Target=str>, R: Com
|
|||
|
||||
impl<'a, R> NodeJsSystemdUserService<'a, String, SetuidCommandRunner<'a, R>> where R: CommandRunner {
|
||||
pub fn new(home: &'a str, user_name: &'a str, service_name: &'a str, path: &'a str, command_runner: &'a R) -> Self {
|
||||
let file_path = format!("{}/.config/systemd/user/{}.service", home.trim_right(), service_name);
|
||||
let file_path = format!("{}/.config/systemd/user/{}.service", home.trim_end(), service_name);
|
||||
|
||||
let port = format!("/var/tmp/{}-{}.socket", user_name, service_name);
|
||||
let content = format!("[Service]
|
||||
|
|
@ -91,18 +91,18 @@ WantedBy=default.target
|
|||
|
||||
impl<'a, C, R> NodeJsSystemdUserService<'a, C, R> where C: Deref<Target=str>, R: CommandRunner {
|
||||
|
||||
fn systemctl_wait_for_dbus(&self, args: &[&str]) -> Result<String, Box<Error>> {
|
||||
fn systemctl_wait_for_dbus(&self, args: &[&str]) -> Result<String, Box<dyn Error>> {
|
||||
let mut tries = 5;
|
||||
loop {
|
||||
let result = try!(self.command_runner.run_with_args("systemctl", args));
|
||||
if !result.status.success() {
|
||||
let raw_stderr = try!(String::from_utf8(result.stderr));
|
||||
let stderr = raw_stderr.trim_right();
|
||||
let stderr = raw_stderr.trim_end();
|
||||
if stderr != "Failed to connect to bus: No such file or directory" {
|
||||
return Err(stderr.into());
|
||||
}
|
||||
} else {
|
||||
return Ok(try!(String::from_utf8(result.stdout)).trim_right().to_string());
|
||||
return Ok(try!(String::from_utf8(result.stdout)).trim_end().to_string());
|
||||
}
|
||||
tries -= 1;
|
||||
if tries == 0 {
|
||||
|
|
@ -112,7 +112,7 @@ impl<'a, C, R> NodeJsSystemdUserService<'a, C, R> where C: Deref<Target=str>, R:
|
|||
}
|
||||
}
|
||||
|
||||
fn check_if_service(&self) -> Result<bool, Box<Error>> {
|
||||
fn check_if_service(&self) -> Result<bool, Box<dyn Error>> {
|
||||
loop {
|
||||
let active_state = try!(self.systemctl_wait_for_dbus(&["--user", "show", "--property", "ActiveState", self.service_name]));
|
||||
match active_state.as_ref() {
|
||||
|
|
@ -126,14 +126,14 @@ impl<'a, C, R> NodeJsSystemdUserService<'a, C, R> where C: Deref<Target=str>, R:
|
|||
}
|
||||
|
||||
impl<'a, C, R> Symbol for NodeJsSystemdUserService<'a, C, R> where C: Deref<Target=str>, R: CommandRunner {
|
||||
fn target_reached(&self) -> Result<bool, Box<Error>> {
|
||||
fn target_reached(&self) -> Result<bool, Box<dyn Error>> {
|
||||
if !(try!(self.file.target_reached())) {
|
||||
return Ok(false);
|
||||
}
|
||||
self.check_if_service()
|
||||
}
|
||||
|
||||
fn execute(&self) -> Result<(), Box<Error>> {
|
||||
fn execute(&self) -> Result<(), Box<dyn Error>> {
|
||||
try!(self.file.execute());
|
||||
try!(self.systemctl_wait_for_dbus(&["--user", "enable", self.service_name]));
|
||||
try!(self.systemctl_wait_for_dbus(&["--user", "restart", self.service_name]));
|
||||
|
|
@ -143,7 +143,7 @@ impl<'a, C, R> Symbol for NodeJsSystemdUserService<'a, C, R> where C: Deref<Targ
|
|||
}
|
||||
|
||||
let file_name = format!("/var/tmp/{}-{}.socket", self.user_name, self.service_name);
|
||||
fs::metadata(&file_name).map(|_| ()).map_err(|e| Box::new(e) as Box<Error>)
|
||||
fs::metadata(&file_name).map(|_| ()).map_err(|e| Box::new(e) as Box<dyn Error>)
|
||||
}
|
||||
|
||||
fn get_prerequisites(&self) -> Vec<Resource> {
|
||||
|
|
@ -152,11 +152,11 @@ impl<'a, C, R> Symbol for NodeJsSystemdUserService<'a, C, R> where C: Deref<Targ
|
|||
r
|
||||
}
|
||||
|
||||
fn as_action<'b>(&'b self, runner: &'b SymbolRunner) -> Box<Action + 'b> {
|
||||
fn as_action<'b>(&'b self, runner: &'b dyn SymbolRunner) -> Box<dyn Action + 'b> {
|
||||
Box::new(SymbolAction::new(runner, self))
|
||||
}
|
||||
|
||||
fn into_action<'b>(self: Box<Self>, runner: &'b SymbolRunner) -> Box<Action + 'b> where Self: 'b {
|
||||
fn into_action<'b>(self: Box<Self>, runner: &'b dyn SymbolRunner) -> Box<dyn Action + 'b> where Self: 'b {
|
||||
Box::new(OwnedSymbolAction::new(runner, *self))
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,19 +16,19 @@ impl<'a, C: CommandRunner> ReloadService<'a, C> {
|
|||
}
|
||||
|
||||
impl<'a, C: CommandRunner> Symbol for ReloadService<'a, C> {
|
||||
fn target_reached(&self) -> Result<bool, Box<Error>> {
|
||||
fn target_reached(&self) -> Result<bool, Box<dyn Error>> {
|
||||
Ok(true)
|
||||
}
|
||||
|
||||
fn execute(&self) -> Result<(), Box<Error>> {
|
||||
fn execute(&self) -> Result<(), Box<dyn Error>> {
|
||||
self.command_runner.run_successfully("systemctl", &["reload-or-restart", self.service])
|
||||
}
|
||||
|
||||
fn as_action<'b>(&'b self, runner: &'b SymbolRunner) -> Box<Action + 'b> {
|
||||
fn as_action<'b>(&'b self, runner: &'b dyn SymbolRunner) -> Box<dyn Action + 'b> {
|
||||
Box::new(SymbolAction::new(runner, self))
|
||||
}
|
||||
|
||||
fn into_action<'b>(self: Box<Self>, runner: &'b SymbolRunner) -> Box<Action + 'b> where Self: 'b {
|
||||
fn into_action<'b>(self: Box<Self>, runner: &'b dyn SymbolRunner) -> Box<dyn Action + 'b> where Self: 'b {
|
||||
Box::new(OwnedSymbolAction::new(runner, *self))
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ impl<E: Error> Error for SystemdUserSessionError<E> {
|
|||
SystemdUserSessionError::GenericError => "Generic error"
|
||||
}
|
||||
}
|
||||
fn cause(&self) -> Option<&Error> {
|
||||
fn cause(&self) -> Option<&dyn Error> {
|
||||
match self {
|
||||
SystemdUserSessionError::ExecError(ref e) => Some(e),
|
||||
_ => None
|
||||
|
|
@ -45,22 +45,22 @@ impl<'a, C: CommandRunner> SystemdUserSession<'a, C> {
|
|||
}
|
||||
|
||||
impl<'a, C: CommandRunner> Symbol for SystemdUserSession<'a, C> {
|
||||
fn target_reached(&self) -> Result<bool, Box<Error>> {
|
||||
fn target_reached(&self) -> Result<bool, Box<dyn Error>> {
|
||||
let mut path = PathBuf::from("/var/lib/systemd/linger");
|
||||
path.push(self.user_name.borrow() as &str);
|
||||
Ok(path.exists())
|
||||
// Could also do `loginctl show-user ${self.user_name} | grep -F 'Linger=yes`
|
||||
}
|
||||
|
||||
fn execute(&self) -> Result<(), Box<Error>> {
|
||||
fn execute(&self) -> Result<(), Box<dyn Error>> {
|
||||
self.command_runner.run_successfully("loginctl", &["enable-linger", self.user_name.borrow()])
|
||||
}
|
||||
|
||||
fn as_action<'b>(&'b self, runner: &'b SymbolRunner) -> Box<Action + 'b> {
|
||||
fn as_action<'b>(&'b self, runner: &'b dyn SymbolRunner) -> Box<dyn Action + 'b> {
|
||||
Box::new(SymbolAction::new(runner, self))
|
||||
}
|
||||
|
||||
fn into_action<'b>(self: Box<Self>, runner: &'b SymbolRunner) -> Box<Action + 'b> where Self: 'b {
|
||||
fn into_action<'b>(self: Box<Self>, runner: &'b dyn SymbolRunner) -> Box<dyn Action + 'b> where Self: 'b {
|
||||
Box::new(OwnedSymbolAction::new(runner, *self))
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue