This commit is contained in:
		
							parent
							
								
									537e1360bb
								
							
						
					
					
						commit
						fbb2eb663b
					
				
							
								
								
									
										49
									
								
								Cargo.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										49
									
								
								Cargo.lock
									
									
									
										generated
									
									
									
								
							| 
						 | 
				
			
			@ -18,7 +18,7 @@ name = "ansi_term"
 | 
			
		|||
version = "0.11.0"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
dependencies = [
 | 
			
		||||
 "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
 "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
| 
						 | 
				
			
			@ -45,7 +45,7 @@ version = "0.2.13"
 | 
			
		|||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
dependencies = [
 | 
			
		||||
 "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
 "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
 "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
| 
						 | 
				
			
			@ -181,7 +181,7 @@ dependencies = [
 | 
			
		|||
 "atty 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
 "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
 "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
 "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
 "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
| 
						 | 
				
			
			@ -212,7 +212,7 @@ dependencies = [
 | 
			
		|||
 "regex 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
 "termios 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
 "unicode-width 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
 "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
 "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
| 
						 | 
				
			
			@ -334,7 +334,7 @@ dependencies = [
 | 
			
		|||
 "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
 "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
 "redox_users 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
 "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
 "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
| 
						 | 
				
			
			@ -397,6 +397,7 @@ dependencies = [
 | 
			
		|||
 "tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
 "walkdir 2.2.9 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
 "widestring 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
 "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
 "zip 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -428,7 +429,7 @@ dependencies = [
 | 
			
		|||
 "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
 "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
 "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
 "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
 "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
| 
						 | 
				
			
			@ -465,7 +466,7 @@ version = "0.4.3"
 | 
			
		|||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
dependencies = [
 | 
			
		||||
 "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
 "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
 "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
| 
						 | 
				
			
			@ -808,7 +809,7 @@ name = "named_pipe"
 | 
			
		|||
version = "0.4.1"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
dependencies = [
 | 
			
		||||
 "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
 "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
| 
						 | 
				
			
			@ -835,7 +836,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		|||
dependencies = [
 | 
			
		||||
 "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
 "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
 "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
 "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
| 
						 | 
				
			
			@ -857,7 +858,7 @@ dependencies = [
 | 
			
		|||
 "mio 0.6.19 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
 "mio-extras 2.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
 "walkdir 2.2.9 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
 "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
 "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
| 
						 | 
				
			
			@ -941,7 +942,7 @@ dependencies = [
 | 
			
		|||
 "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
 "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
 "smallvec 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
 "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
 "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
| 
						 | 
				
			
			@ -1028,7 +1029,7 @@ dependencies = [
 | 
			
		|||
 "rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
 "rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
 "rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
 "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
 "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
| 
						 | 
				
			
			@ -1113,7 +1114,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		|||
dependencies = [
 | 
			
		||||
 "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
 "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
 "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
 "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
| 
						 | 
				
			
			@ -1126,7 +1127,7 @@ dependencies = [
 | 
			
		|||
 "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
 "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
 "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
 "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
 "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
| 
						 | 
				
			
			@ -1191,7 +1192,7 @@ name = "remove_dir_all"
 | 
			
		|||
version = "0.5.2"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
dependencies = [
 | 
			
		||||
 "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
 "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
| 
						 | 
				
			
			@ -1269,7 +1270,7 @@ version = "0.1.16"
 | 
			
		|||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
dependencies = [
 | 
			
		||||
 "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
 "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
 "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
| 
						 | 
				
			
			@ -1461,7 +1462,7 @@ dependencies = [
 | 
			
		|||
 "rand 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
 "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
 "remove_dir_all 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
 "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
 "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
| 
						 | 
				
			
			@ -1470,7 +1471,7 @@ version = "0.6.1"
 | 
			
		|||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
dependencies = [
 | 
			
		||||
 "dirs 2.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
 "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
 "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
| 
						 | 
				
			
			@ -1504,7 +1505,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		|||
dependencies = [
 | 
			
		||||
 "libc 0.2.62 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
 "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
 "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
 "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
| 
						 | 
				
			
			@ -1731,7 +1732,7 @@ version = "2.2.9"
 | 
			
		|||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
dependencies = [
 | 
			
		||||
 "same-file 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
 "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
 "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
 "winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1762,7 +1763,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		|||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "winapi"
 | 
			
		||||
version = "0.3.8"
 | 
			
		||||
version = "0.3.9"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
dependencies = [
 | 
			
		||||
 "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
| 
						 | 
				
			
			@ -1784,7 +1785,7 @@ name = "winapi-util"
 | 
			
		|||
version = "0.1.2"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
dependencies = [
 | 
			
		||||
 "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
 "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
| 
						 | 
				
			
			@ -1797,7 +1798,7 @@ name = "winreg"
 | 
			
		|||
version = "0.6.2"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
dependencies = [
 | 
			
		||||
 "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
 "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
| 
						 | 
				
			
			@ -2028,7 +2029,7 @@ dependencies = [
 | 
			
		|||
"checksum wasi 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b89c3ce4ce14bdc6fb6beaf9ec7928ca331de5df7e5ea278375642a2f478570d"
 | 
			
		||||
"checksum widestring 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "effc0e4ff8085673ea7b9b2e3c73f6bd4d118810c9009ed8f1e16bd96c331db6"
 | 
			
		||||
"checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
 | 
			
		||||
"checksum winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6"
 | 
			
		||||
"checksum winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
 | 
			
		||||
"checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"
 | 
			
		||||
"checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
 | 
			
		||||
"checksum winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7168bab6e1daee33b4557efd0e95d5ca70a03706d39fa5f3fe7a236f584b03c9"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -38,6 +38,7 @@ signal-hook = "0.1.15"
 | 
			
		|||
 | 
			
		||||
[target.'cfg(windows)'.dependencies]
 | 
			
		||||
named_pipe = "0.4.1"
 | 
			
		||||
winapi = { version = "0.3.9", features = ["wincon"] }
 | 
			
		||||
 | 
			
		||||
[build-dependencies]
 | 
			
		||||
cmake = "0.1.31"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -62,11 +62,18 @@ impl super::Extension for ScriptExtension {
 | 
			
		|||
 | 
			
		||||
            // Replace %HOME% with current user home directory to
 | 
			
		||||
            // create cross-platform paths. See issue #265
 | 
			
		||||
            // Also replace %CONFIG% and %PACKAGES% path. See issue #380
 | 
			
		||||
            let home_dir = dirs::home_dir().unwrap_or_default();
 | 
			
		||||
            str_args.iter_mut().for_each(|arg| {
 | 
			
		||||
                if arg.contains("%HOME%") {
 | 
			
		||||
                    *arg = arg.replace("%HOME%", &home_dir.to_string_lossy().to_string());
 | 
			
		||||
                }
 | 
			
		||||
                if arg.contains("%CONFIG%") {
 | 
			
		||||
                    *arg = arg.replace("%CONFIG%", &crate::context::get_config_dir().to_string_lossy().to_string());
 | 
			
		||||
                }
 | 
			
		||||
                if arg.contains("%PACKAGES%") {
 | 
			
		||||
                    *arg = arg.replace("%PACKAGES%", &crate::context::get_package_dir().to_string_lossy().to_string());
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                // On Windows, correct paths separators
 | 
			
		||||
                if cfg!(target_os = "windows") {
 | 
			
		||||
| 
						 | 
				
			
			@ -79,6 +86,9 @@ impl super::Extension for ScriptExtension {
 | 
			
		|||
 | 
			
		||||
            let mut command = Command::new(&str_args[0]);
 | 
			
		||||
 | 
			
		||||
            // Set the OS-specific flags
 | 
			
		||||
            super::utils::set_command_flags(&mut command);
 | 
			
		||||
 | 
			
		||||
            // Inject the $CONFIG variable
 | 
			
		||||
            command.env("CONFIG", crate::context::get_config_dir());
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -80,6 +80,9 @@ impl Shell {
 | 
			
		|||
            }
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        // Set the OS-specific flags
 | 
			
		||||
        super::utils::set_command_flags(&mut command);
 | 
			
		||||
 | 
			
		||||
        // Inject the $CONFIG variable
 | 
			
		||||
        command.env("CONFIG", crate::context::get_config_dir());
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,4 +1,5 @@
 | 
			
		|||
use std::collections::HashMap;
 | 
			
		||||
use std::process::Command;
 | 
			
		||||
use crate::extension::ExtensionResult;
 | 
			
		||||
 | 
			
		||||
pub fn convert_to_env_variables(original_vars: &HashMap<String, ExtensionResult>) -> HashMap<String, String> {
 | 
			
		||||
| 
						 | 
				
			
			@ -22,6 +23,18 @@ pub fn convert_to_env_variables(original_vars: &HashMap<String, ExtensionResult>
 | 
			
		|||
    output
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#[cfg(target_os = "windows")]
 | 
			
		||||
pub fn set_command_flags(command: &mut Command) {
 | 
			
		||||
    use std::os::windows::process::CommandExt;
 | 
			
		||||
    // Avoid showing the shell window
 | 
			
		||||
    // See: https://github.com/federico-terzi/espanso/issues/249
 | 
			
		||||
    command.creation_flags(0x08000000);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#[cfg(not(target_os = "windows"))]
 | 
			
		||||
pub fn set_command_flags(command: &mut Command) {
 | 
			
		||||
    // NOOP on Linux and macOS
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#[cfg(test)]
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										16
									
								
								src/main.rs
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								src/main.rs
									
									
									
									
									
								
							| 
						 | 
				
			
			@ -17,6 +17,8 @@
 | 
			
		|||
 * along with espanso.  If not, see <https://www.gnu.org/licenses/>.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#![windows_subsystem = "windows"]
 | 
			
		||||
 | 
			
		||||
#[macro_use]
 | 
			
		||||
extern crate lazy_static;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -76,6 +78,8 @@ const VERSION: &str = env!("CARGO_PKG_VERSION");
 | 
			
		|||
const LOG_FILE: &str = "espanso.log";
 | 
			
		||||
 | 
			
		||||
fn main() {
 | 
			
		||||
    attach_console();
 | 
			
		||||
 | 
			
		||||
    let install_subcommand = SubCommand::with_name("install")
 | 
			
		||||
        .about("Install a package. Equivalent to 'espanso package install'")
 | 
			
		||||
        .arg(
 | 
			
		||||
| 
						 | 
				
			
			@ -344,6 +348,18 @@ fn main() {
 | 
			
		|||
    println!();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#[cfg(target_os = "windows")]
 | 
			
		||||
fn attach_console() {
 | 
			
		||||
    // When using the windows subsystem we loose the terminal output.
 | 
			
		||||
    // Therefore we try to attach to the current console if available.
 | 
			
		||||
    unsafe {winapi::um::wincon::AttachConsole(0xFFFFFFFF)};
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#[cfg(not(target_os = "windows"))]
 | 
			
		||||
fn attach_console() {
 | 
			
		||||
    // Not necessary on Linux and macOS
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
fn init_logger(config_set: &ConfigSet, reset: bool) {
 | 
			
		||||
    // Initialize log
 | 
			
		||||
    let log_level = match config_set.default.log_level {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue
	
	Block a user