windows now works
This commit is contained in:
parent
c1d5b9fed6
commit
e64c1eda93
2 changed files with 19 additions and 11 deletions
|
@ -12,7 +12,7 @@ serde = "1.0.217"
|
||||||
serde_derive = "1.0.217"
|
serde_derive = "1.0.217"
|
||||||
sha2 = "0.10.8"
|
sha2 = "0.10.8"
|
||||||
toml = "0.8.20"
|
toml = "0.8.20"
|
||||||
[target.'cfg(not(target_family = "unix"))'.dependencies]
|
[target.'cfg(target_family = "windows")'.dependencies]
|
||||||
username = "0.2.0"
|
username = "0.2.0"
|
||||||
|
|
||||||
[target.'cfg(target_family = "unix")'.dependencies]
|
[target.'cfg(target_family = "unix")'.dependencies]
|
||||||
|
|
28
src/main.rs
28
src/main.rs
|
@ -9,7 +9,7 @@ use std::path::PathBuf;
|
||||||
use std::process;
|
use std::process;
|
||||||
#[cfg(target_family = "unix")]
|
#[cfg(target_family = "unix")]
|
||||||
use users;
|
use users;
|
||||||
#[cfg(not(target_family = "unix"))]
|
#[cfg(target_family = "windows")]
|
||||||
use username;
|
use username;
|
||||||
|
|
||||||
#[derive(Parser)]
|
#[derive(Parser)]
|
||||||
|
@ -55,6 +55,23 @@ fn main() -> Result<(), String> {
|
||||||
verbose: args.verbose
|
verbose: args.verbose
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// warn to avoid root/admin
|
||||||
|
// unix-like
|
||||||
|
#[cfg(target_family = "unix")]
|
||||||
|
if users::get_current_uid() == 0 {
|
||||||
|
common::warning(format!("this program should not ran as root"));
|
||||||
|
}
|
||||||
|
// windows
|
||||||
|
#[cfg(target_family = "windows")]
|
||||||
|
match username::get_user_name() {
|
||||||
|
Ok(user) => {
|
||||||
|
if user.contains("Administrator") || user.contains("SYSTEM") {
|
||||||
|
common::warning(format!("this program should not ran as {}", user));
|
||||||
|
}
|
||||||
|
},
|
||||||
|
Err(_) => common::warning(format!("failed to get process username")),
|
||||||
|
}
|
||||||
|
|
||||||
common::verbose(refractr.verbose, 1, format!("Level {} verbosity enabled", refractr.verbose.to_string()));
|
common::verbose(refractr.verbose, 1, format!("Level {} verbosity enabled", refractr.verbose.to_string()));
|
||||||
common::verbose(refractr.verbose, 3, format!("Process ID: {}", refractr.pid));
|
common::verbose(refractr.verbose, 3, format!("Process ID: {}", refractr.pid));
|
||||||
common::verbose(refractr.verbose, 3, format!("Running in Docker: {}", refractr.docker));
|
common::verbose(refractr.verbose, 3, format!("Running in Docker: {}", refractr.docker));
|
||||||
|
@ -65,15 +82,6 @@ fn main() -> Result<(), String> {
|
||||||
println!("{}", example);
|
println!("{}", example);
|
||||||
Ok(())
|
Ok(())
|
||||||
} else {
|
} else {
|
||||||
// warn to avoid root/admin
|
|
||||||
if refractr.unix {
|
|
||||||
if users::get_current_uid() == 0 {
|
|
||||||
common::warning(format!("this program should not ran as root"));
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// TODO: print message for Windows
|
|
||||||
}
|
|
||||||
|
|
||||||
let cfgs = match config::read_config(args.config, &refractr) {
|
let cfgs = match config::read_config(args.config, &refractr) {
|
||||||
Ok(cfgs) => cfgs,
|
Ok(cfgs) => cfgs,
|
||||||
Err(e) => freak_out!(e)
|
Err(e) => freak_out!(e)
|
||||||
|
|
Loading…
Add table
Reference in a new issue