use proxmox_backup::tools::runtime::main to run async run_cli_command

This commit is contained in:
Dietmar Maurer 2020-01-21 11:34:45 +01:00
parent 077ac6f8b3
commit 3f06d6fbbd
4 changed files with 10 additions and 18 deletions

View File

@ -29,7 +29,7 @@ pam = "0.7"
pam-sys = "0.5" pam-sys = "0.5"
percent-encoding = "2.1" percent-encoding = "2.1"
pin-utils = "0.1.0-alpha" pin-utils = "0.1.0-alpha"
proxmox = { version = "0.1.4", features = [ "sortable-macro", "api-macro" ] } proxmox = { version = "0.1.5", features = [ "sortable-macro", "api-macro" ] }
#proxmox = { git = "ssh://gitolite3@proxdev.maurer-it.com/rust/proxmox", version = "0.1.2", features = [ "sortable-macro", "api-macro" ] } #proxmox = { git = "ssh://gitolite3@proxdev.maurer-it.com/rust/proxmox", version = "0.1.2", features = [ "sortable-macro", "api-macro" ] }
#proxmox = { path = "../proxmox/proxmox", features = [ "sortable-macro", "api-macro" ] } #proxmox = { path = "../proxmox/proxmox", features = [ "sortable-macro", "api-macro" ] }
regex = "1.2" regex = "1.2"

View File

@ -1484,7 +1484,7 @@ async fn try_get(repo: &BackupRepository, url: &str) -> Value {
} }
fn complete_backup_group(_arg: &str, param: &HashMap<String, String>) -> Vec<String> { fn complete_backup_group(_arg: &str, param: &HashMap<String, String>) -> Vec<String> {
async_main(async { complete_backup_group_do(param).await }) proxmox_backup::tools::runtime::main(async { complete_backup_group_do(param).await })
} }
async fn complete_backup_group_do(param: &HashMap<String, String>) -> Vec<String> { async fn complete_backup_group_do(param: &HashMap<String, String>) -> Vec<String> {
@ -1514,7 +1514,7 @@ async fn complete_backup_group_do(param: &HashMap<String, String>) -> Vec<String
} }
fn complete_group_or_snapshot(arg: &str, param: &HashMap<String, String>) -> Vec<String> { fn complete_group_or_snapshot(arg: &str, param: &HashMap<String, String>) -> Vec<String> {
async_main(async { complete_group_or_snapshot_do(arg, param).await }) proxmox_backup::tools::runtime::main(async { complete_group_or_snapshot_do(arg, param).await })
} }
async fn complete_group_or_snapshot_do(arg: &str, param: &HashMap<String, String>) -> Vec<String> { async fn complete_group_or_snapshot_do(arg: &str, param: &HashMap<String, String>) -> Vec<String> {
@ -1533,7 +1533,7 @@ async fn complete_group_or_snapshot_do(arg: &str, param: &HashMap<String, String
} }
fn complete_backup_snapshot(_arg: &str, param: &HashMap<String, String>) -> Vec<String> { fn complete_backup_snapshot(_arg: &str, param: &HashMap<String, String>) -> Vec<String> {
async_main(async { complete_backup_snapshot_do(param).await }) proxmox_backup::tools::runtime::main(async { complete_backup_snapshot_do(param).await })
} }
async fn complete_backup_snapshot_do(param: &HashMap<String, String>) -> Vec<String> { async fn complete_backup_snapshot_do(param: &HashMap<String, String>) -> Vec<String> {
@ -1564,7 +1564,7 @@ async fn complete_backup_snapshot_do(param: &HashMap<String, String>) -> Vec<Str
} }
fn complete_server_file_name(_arg: &str, param: &HashMap<String, String>) -> Vec<String> { fn complete_server_file_name(_arg: &str, param: &HashMap<String, String>) -> Vec<String> {
async_main(async { complete_server_file_name_do(param).await }) proxmox_backup::tools::runtime::main(async { complete_server_file_name_do(param).await })
} }
async fn complete_server_file_name_do(param: &HashMap<String, String>) -> Vec<String> { async fn complete_server_file_name_do(param: &HashMap<String, String>) -> Vec<String> {
@ -1890,7 +1890,7 @@ fn mount(
if verbose { if verbose {
// This will stay in foreground with debug output enabled as None is // This will stay in foreground with debug output enabled as None is
// passed for the RawFd. // passed for the RawFd.
return async_main(mount_do(param, None)); return proxmox_backup::tools::runtime::main(mount_do(param, None));
} }
// Process should be deamonized. // Process should be deamonized.
@ -1906,7 +1906,7 @@ fn mount(
Ok(ForkResult::Child) => { Ok(ForkResult::Child) => {
nix::unistd::close(pipe.0).unwrap(); nix::unistd::close(pipe.0).unwrap();
nix::unistd::setsid().unwrap(); nix::unistd::setsid().unwrap();
async_main(mount_do(param, Some(pipe.1))) proxmox_backup::tools::runtime::main(mount_do(param, Some(pipe.1)))
} }
Err(_) => bail!("failed to daemonize process"), Err(_) => bail!("failed to daemonize process"),
} }
@ -2361,13 +2361,5 @@ fn main() {
.insert("catalog", catalog_mgmt_cli()) .insert("catalog", catalog_mgmt_cli())
.insert("task", task_mgmt_cli()); .insert("task", task_mgmt_cli());
run_cli_command(cmd_def); proxmox_backup::tools::runtime::main(run_cli_command(cmd_def));
}
fn async_main<F: Future>(fut: F) -> <F as Future>::Output {
let mut rt = tokio::runtime::Runtime::new().unwrap();
let ret = rt.block_on(fut);
// This does not exist anymore. We need to actually stop our runaways instead...
// rt.shutdown_now();
ret
} }

View File

@ -459,7 +459,7 @@ fn main() {
.completion_cb("remote-store", complete_remote_datastore_name) .completion_cb("remote-store", complete_remote_datastore_name)
); );
run_cli_command(cmd_def); proxmox_backup::tools::runtime::main(run_cli_command(cmd_def));
} }
// shell completion helper // shell completion helper

View File

@ -519,5 +519,5 @@ fn main() {
.completion_cb("archive", tools::complete_file_name) .completion_cb("archive", tools::complete_file_name)
); );
run_cli_command(cmd_def); proxmox_backup::tools::runtime::main(run_cli_command(cmd_def));
} }