]> git.proxmox.com Git - proxmox-offline-mirror.git/blobdiff - src/bin/proxmox_offline_mirror_cmds/config.rs
fix #4259: mirror: add ignore-errors option
[proxmox-offline-mirror.git] / src / bin / proxmox_offline_mirror_cmds / config.rs
index eeb9daadfe6ab3b89b53b974290a1e6be28225ee..5ebf6d5ac54819ae7c0696f07c147804d0887c7e 100644 (file)
@@ -17,7 +17,7 @@ use proxmox_offline_mirror::{
 
 pub fn get_config_path() -> String {
     env::var("PROXMOX_OFFLINE_MIRROR_CONFIG")
-        .unwrap_or("/etc/proxmox-offline-mirror.cfg".to_string())
+        .unwrap_or_else(|_| "/etc/proxmox-offline-mirror.cfg".to_string())
 }
 
 pub const LIST_MIRRORS_RETURN_TYPE: ReturnType = ReturnType {
@@ -57,7 +57,7 @@ pub const SHOW_MEDIUM_RETURN_TYPE: ReturnType = ReturnType {
  )]
 /// List configured mirrors
 async fn list_mirror(config: Option<String>, param: Value) -> Result<Value, Error> {
-    let config = config.unwrap_or_else(|| get_config_path());
+    let config = config.unwrap_or_else(get_config_path);
 
     let (config, _digest) = proxmox_offline_mirror::config::config(&config)?;
     let config: Vec<MirrorConfig> = config.convert_to_typed_array("mirror")?;
@@ -66,7 +66,7 @@ async fn list_mirror(config: Option<String>, param: Value) -> Result<Value, Erro
     let options = default_table_format_options()
         .column(ColumnConfig::new("id").header("ID"))
         .column(ColumnConfig::new("repository"))
-        .column(ColumnConfig::new("dir"))
+        .column(ColumnConfig::new("base-dir"))
         .column(ColumnConfig::new("verify"))
         .column(ColumnConfig::new("sync"));
 
@@ -100,7 +100,7 @@ async fn list_mirror(config: Option<String>, param: Value) -> Result<Value, Erro
  )]
 /// Show full mirror config
 async fn show_mirror(config: Option<String>, id: String, param: Value) -> Result<Value, Error> {
-    let config = config.unwrap_or_else(|| get_config_path());
+    let config = config.unwrap_or_else(get_config_path);
 
     let (config, _digest) = proxmox_offline_mirror::config::config(&config)?;
     let mut config = config.lookup_json("mirror", &id)?;
@@ -141,7 +141,7 @@ async fn add_mirror(
     data: MirrorConfig,
     _param: Value,
 ) -> Result<Value, Error> {
-    let config = config.unwrap_or_else(|| get_config_path());
+    let config = config.unwrap_or_else(get_config_path);
 
     let _lock = proxmox_offline_mirror::config::lock_config(&config)?;
 
@@ -188,7 +188,7 @@ async fn remove_mirror(
     remove_data: bool,
     _param: Value,
 ) -> Result<Value, Error> {
-    let config_file = config.unwrap_or_else(|| get_config_path());
+    let config_file = config.unwrap_or_else(get_config_path);
 
     let _lock = proxmox_offline_mirror::config::lock_config(&config_file)?;
 
@@ -236,7 +236,7 @@ pub fn update_mirror(
     config: Option<String>,
     id: String,
 ) -> Result<(), Error> {
-    let config_file = config.unwrap_or_else(|| get_config_path());
+    let config_file = config.unwrap_or_else(get_config_path);
 
     let _lock = proxmox_offline_mirror::config::lock_config(&config_file)?;
 
@@ -250,8 +250,8 @@ pub fn update_mirror(
     if let Some(repository) = update.repository {
         data.repository = repository
     }
-    if let Some(dir) = update.dir {
-        data.dir = dir
+    if let Some(base_dir) = update.base_dir {
+        data.base_dir = base_dir
     }
     if let Some(architectures) = update.architectures {
         data.architectures = architectures
@@ -262,6 +262,9 @@ pub fn update_mirror(
     if let Some(verify) = update.verify {
         data.verify = verify
     }
+    if let Some(ignore_errors) = update.ignore_errors {
+        data.ignore_errors = ignore_errors
+    }
 
     config.set_data(&id, "mirror", &data)?;
     proxmox_offline_mirror::config::save_config(&config_file, &config)?;
@@ -286,7 +289,7 @@ pub fn update_mirror(
  )]
 /// List configured media.
 async fn list_media(config: Option<String>, param: Value) -> Result<Value, Error> {
-    let config = config.unwrap_or_else(|| get_config_path());
+    let config = config.unwrap_or_else(get_config_path);
 
     let (config, _digest) = proxmox_offline_mirror::config::config(&config)?;
     let config: Vec<MediaConfig> = config.convert_to_typed_array("medium")?;
@@ -329,7 +332,7 @@ async fn list_media(config: Option<String>, param: Value) -> Result<Value, Error
  )]
 /// Show full medium config entry.
 async fn show_medium(config: Option<String>, id: String, param: Value) -> Result<Value, Error> {
-    let config = config.unwrap_or_else(|| get_config_path());
+    let config = config.unwrap_or_else(get_config_path);
 
     let (config, _digest) = proxmox_offline_mirror::config::config(&config)?;
     let mut config = config.lookup_json("medium", &id)?;
@@ -370,7 +373,7 @@ async fn add_medium(
     data: MediaConfig,
     _param: Value,
 ) -> Result<Value, Error> {
-    let config = config.unwrap_or_else(|| get_config_path());
+    let config = config.unwrap_or_else(get_config_path);
 
     let _lock = proxmox_offline_mirror::config::lock_config(&config)?;
 
@@ -417,7 +420,7 @@ async fn remove_medium(
     remove_data: bool,
     _param: Value,
 ) -> Result<Value, Error> {
-    let config_file = config.unwrap_or_else(|| get_config_path());
+    let config_file = config.unwrap_or_else(get_config_path);
 
     let _lock = proxmox_offline_mirror::config::lock_config(&config_file)?;
 
@@ -468,7 +471,7 @@ pub fn update_medium(
     config: Option<String>,
     id: String,
 ) -> Result<(), Error> {
-    let config_file = config.unwrap_or_else(|| get_config_path());
+    let config_file = config.unwrap_or_else(get_config_path);
 
     let _lock = proxmox_offline_mirror::config::lock_config(&config_file)?;