src/bin/proxmox-backup-client.rs: implement chunk-size completion

This commit is contained in:
Dietmar Maurer 2019-03-13 12:26:01 +01:00
parent 98f0b97293
commit 4981134708

View File

@ -78,7 +78,7 @@ fn record_repository(repo: &BackupRepository) {
let _ = tools::file_set_contents(path, new_data.to_string().as_bytes(), None); let _ = tools::file_set_contents(path, new_data.to_string().as_bytes(), None);
} }
fn complete_repository(arg: &str, param: &HashMap<String, String>) -> Vec<String> { fn complete_repository(_arg: &str, _param: &HashMap<String, String>) -> Vec<String> {
let mut result = vec![]; let mut result = vec![];
@ -96,7 +96,7 @@ fn complete_repository(arg: &str, param: &HashMap<String, String>) -> Vec<String
let data = tools::file_get_json(&path).unwrap_or(json!({})); let data = tools::file_get_json(&path).unwrap_or(json!({}));
if let Some(map) = data.as_object() { if let Some(map) = data.as_object() {
for (repo, count) in map { for (repo, _count) in map {
result.push(repo.to_owned()); result.push(repo.to_owned());
} }
} }
@ -581,7 +581,7 @@ fn prune(
Ok(result) Ok(result)
} }
fn complete_backup_group(arg: &str, param: &HashMap<String, String>) -> Vec<String> { fn complete_backup_group(_arg: &str, param: &HashMap<String, String>) -> Vec<String> {
let mut result = vec![]; let mut result = vec![];
@ -617,6 +617,20 @@ fn complete_backup_group(arg: &str, param: &HashMap<String, String>) -> Vec<Stri
result result
} }
fn complete_chunk_size(_arg: &str, _param: &HashMap<String, String>) -> Vec<String> {
let mut result = vec![];
let mut size = 64;
loop {
result.push(size.to_string());
size = size * 2;
if size > 4096 { break; }
}
result
}
fn main() { fn main() {
let repo_url_schema: Arc<Schema> = Arc::new( let repo_url_schema: Arc<Schema> = Arc::new(
@ -660,7 +674,8 @@ fn main() {
)) ))
.arg_param(vec!["repository", "backupspec"]) .arg_param(vec!["repository", "backupspec"])
.completion_cb("repository", complete_repository) .completion_cb("repository", complete_repository)
.completion_cb("backupspec", complete_backup_source); .completion_cb("backupspec", complete_backup_source)
.completion_cb("chunk-size", complete_chunk_size);
let list_cmd_def = CliCommand::new( let list_cmd_def = CliCommand::new(
ApiMethod::new( ApiMethod::new(