fix(core): improve reporting of espanso start command. Relates to #839
This commit is contained in:
parent
ec7f1772dd
commit
7d5fd6aa8b
|
@ -17,12 +17,14 @@
|
||||||
* along with espanso. If not, see <https://www.gnu.org/licenses/>.
|
* along with espanso. If not, see <https://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
use std::time::Instant;
|
||||||
|
|
||||||
use super::{CliModule, CliModuleArgs, PathsOverrides};
|
use super::{CliModule, CliModuleArgs, PathsOverrides};
|
||||||
use crate::{
|
use crate::{
|
||||||
error_eprintln,
|
error_eprintln,
|
||||||
exit_code::{
|
exit_code::{
|
||||||
SERVICE_ALREADY_RUNNING, SERVICE_FAILURE, SERVICE_NOT_REGISTERED, SERVICE_NOT_RUNNING,
|
SERVICE_ALREADY_RUNNING, SERVICE_FAILURE, SERVICE_NOT_REGISTERED, SERVICE_NOT_RUNNING,
|
||||||
SERVICE_SUCCESS,
|
SERVICE_SUCCESS, SERVICE_TIMED_OUT,
|
||||||
},
|
},
|
||||||
info_println,
|
info_println,
|
||||||
lock::acquire_worker_lock,
|
lock::acquire_worker_lock,
|
||||||
|
@ -131,12 +133,23 @@ fn start_main(paths: &Paths, _paths_overrides: &PathsOverrides, args: &ArgMatche
|
||||||
if let Err(err) = start_service() {
|
if let Err(err) = start_service() {
|
||||||
error_eprintln!("unable to start service: {}", err);
|
error_eprintln!("unable to start service: {}", err);
|
||||||
return SERVICE_FAILURE;
|
return SERVICE_FAILURE;
|
||||||
} else {
|
|
||||||
info_println!("espanso started correctly!");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
SERVICE_SUCCESS
|
let now = Instant::now();
|
||||||
|
while now.elapsed() < std::time::Duration::from_secs(5) {
|
||||||
|
let lock_file = acquire_worker_lock(&paths.runtime);
|
||||||
|
if lock_file.is_none() {
|
||||||
|
info_println!("espanso started correctly!");
|
||||||
|
return SERVICE_SUCCESS;
|
||||||
|
}
|
||||||
|
drop(lock_file);
|
||||||
|
|
||||||
|
std::thread::sleep(std::time::Duration::from_millis(200));
|
||||||
|
}
|
||||||
|
|
||||||
|
error_eprintln!("unable to start service: timed out");
|
||||||
|
SERVICE_TIMED_OUT
|
||||||
}
|
}
|
||||||
|
|
||||||
fn stop_main(paths: &Paths) -> i32 {
|
fn stop_main(paths: &Paths) -> i32 {
|
||||||
|
|
|
@ -51,6 +51,7 @@ pub const SERVICE_FAILURE: i32 = 1;
|
||||||
pub const SERVICE_NOT_REGISTERED: i32 = 2;
|
pub const SERVICE_NOT_REGISTERED: i32 = 2;
|
||||||
pub const SERVICE_ALREADY_RUNNING: i32 = 3;
|
pub const SERVICE_ALREADY_RUNNING: i32 = 3;
|
||||||
pub const SERVICE_NOT_RUNNING: i32 = 4;
|
pub const SERVICE_NOT_RUNNING: i32 = 4;
|
||||||
|
pub const SERVICE_TIMED_OUT: i32 = 5;
|
||||||
|
|
||||||
pub const WORKAROUND_SUCCESS: i32 = 0;
|
pub const WORKAROUND_SUCCESS: i32 = 0;
|
||||||
#[allow(dead_code)]
|
#[allow(dead_code)]
|
||||||
|
|
Loading…
Reference in New Issue
Block a user