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/>.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
use std::time::Instant;
 | 
			
		||||
 | 
			
		||||
use super::{CliModule, CliModuleArgs, PathsOverrides};
 | 
			
		||||
use crate::{
 | 
			
		||||
  error_eprintln,
 | 
			
		||||
  exit_code::{
 | 
			
		||||
    SERVICE_ALREADY_RUNNING, SERVICE_FAILURE, SERVICE_NOT_REGISTERED, SERVICE_NOT_RUNNING,
 | 
			
		||||
    SERVICE_SUCCESS,
 | 
			
		||||
    SERVICE_SUCCESS, SERVICE_TIMED_OUT,
 | 
			
		||||
  },
 | 
			
		||||
  info_println,
 | 
			
		||||
  lock::acquire_worker_lock,
 | 
			
		||||
| 
						 | 
				
			
			@ -131,12 +133,23 @@ fn start_main(paths: &Paths, _paths_overrides: &PathsOverrides, args: &ArgMatche
 | 
			
		|||
    if let Err(err) = start_service() {
 | 
			
		||||
      error_eprintln!("unable to start service: {}", err);
 | 
			
		||||
      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 {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -51,6 +51,7 @@ pub const SERVICE_FAILURE: i32 = 1;
 | 
			
		|||
pub const SERVICE_NOT_REGISTERED: i32 = 2;
 | 
			
		||||
pub const SERVICE_ALREADY_RUNNING: i32 = 3;
 | 
			
		||||
pub const SERVICE_NOT_RUNNING: i32 = 4;
 | 
			
		||||
pub const SERVICE_TIMED_OUT: i32 = 5;
 | 
			
		||||
 | 
			
		||||
pub const WORKAROUND_SUCCESS: i32 = 0;
 | 
			
		||||
#[allow(dead_code)]
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue
	
	Block a user