mgr: Do not fail locking if spotify is not running
This commit is contained in:
@@ -153,7 +153,11 @@ fn screen_off() -> Result<(), Error> {
|
||||
}
|
||||
|
||||
fn lock() -> Result<cmd::RunningProcess, Error> {
|
||||
spotify::pause()?;
|
||||
match spotify::pause() {
|
||||
Ok(_) => (),
|
||||
Err(spotify::Error::NotFound) => (),
|
||||
Err(e) => return Err(e.into()),
|
||||
}
|
||||
|
||||
let lock_handle = cmd::start_command(
|
||||
"i3lock",
|
||||
|
||||
@@ -15,6 +15,8 @@ pub enum Error {
|
||||
Cli(#[from] cli::ParseError),
|
||||
#[error(transparent)]
|
||||
Systemd(#[from] systemd::Error),
|
||||
#[error("spotify does not seem to be running")]
|
||||
NotFound,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Copy)]
|
||||
@@ -156,7 +158,14 @@ pub(crate) fn set(status: Status) -> Result<(), Error> {
|
||||
}
|
||||
|
||||
fn playerctl(cmd: &str) -> Result<(), Error> {
|
||||
Ok(cmd::command("playerctl", &["-p", "spotify", cmd])?)
|
||||
if cmd::run_command("playerctl", &["-p", "spotify", cmd])?
|
||||
.stderr
|
||||
.contains("No players found")
|
||||
{
|
||||
Err(Error::NotFound)
|
||||
} else {
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
|
||||
pub(crate) fn pause() -> Result<(), Error> {
|
||||
|
||||
Reference in New Issue
Block a user