]> git.proxmox.com Git - proxmox-backup.git/blobdiff - src/bin/proxmox-backup-client.rs
src/bin/proxmox-backup-client.rs: implement chunk-size completion
[proxmox-backup.git] / src / bin / proxmox-backup-client.rs
index 6ae03bc662f8ff3e4f16f315ac1b0f61dccac629..73ab8e8a77d0e0e2ae1bf3cd84400502eea95301 100644 (file)
@@ -78,7 +78,7 @@ fn record_repository(repo: &BackupRepository) {
     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![];
 
@@ -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!({}));
 
     if let Some(map) = data.as_object() {
-        for (repo, count) in map {
+        for (repo, _count) in map {
             result.push(repo.to_owned());
         }
     }
@@ -581,7 +581,7 @@ fn prune(
     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![];
 
@@ -617,6 +617,20 @@ fn complete_backup_group(arg: &str, param: &HashMap<String, String>) -> Vec<Stri
     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() {
 
     let repo_url_schema: Arc<Schema> = Arc::new(
@@ -660,7 +674,8 @@ fn main() {
         ))
         .arg_param(vec!["repository", "backupspec"])
         .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(
         ApiMethod::new(