ソースを参照

Fix YunoHost 4.1

Allow to choose compression algorithm
Maniack Crudelis 4 年 前
コミット
3ce94f3992
4 ファイル変更59 行追加4 行削除
  1. 3 3
      conf/app.src
  2. 13 0
      config_panel.toml
  3. 1 1
      scripts/_variables
  4. 42 0
      scripts/config

+ 3 - 3
conf/app.src

@@ -1,6 +1,6 @@
-SOURCE_URL=https://github.com/maniackcrudelis/archivist/archive/v1.0.1.tar.gz
-SOURCE_SUM=56ec81447b7eb6d34c4af213b48530dc
+SOURCE_URL=https://github.com/maniackcrudelis/archivist/archive/698b7f79bf98681fad7bdc4411a4eae4658b6f51.zip
+SOURCE_SUM=89c471dab51cc46a38a9930285e181a3
 SOURCE_SUM_PRG=md5sum
-SOURCE_FORMAT=tar.gz
+SOURCE_FORMAT=zip
 SOURCE_IN_SUBDIR=true
 SOURCE_FILENAME=

+ 13 - 0
config_panel.toml

@@ -18,6 +18,19 @@ name = "Archivist configuration"
         optional = true
         help = "A password is needed if encryption is activated."
 
+    [main.compression]
+    name = "Compression algorithm"
+
+        [main.compression.ynh]
+        ask = "Choose the compression algorithm for YunoHost backups"
+        choices = ["gzip", "lzop", "zstd", "bzip2", "lzma", "lzip", "xz", "No compression"]
+        default = "gzip"
+
+        [main.compression.files]
+        ask = "Choose the compression algorithm for files and directories backups"
+        choices = ["gzip", "lzop", "zstd", "bzip2", "lzma", "lzip", "xz", "No compression"]
+        default = "gzip"
+
     [main.backup_types]
     name = "Backup"
 

+ 1 - 1
scripts/_variables

@@ -1,4 +1,4 @@
 #!/bin/bash
 
 # Dependencies
-app_depencencies="rsync encfs sshpass ccrypt"
+app_depencencies="rsync encfs sshpass ccrypt lzop zstd lzip"

+ 42 - 0
scripts/config

@@ -51,6 +51,14 @@ old_encrypt_password="$(cat $passkey)"
 encrypt_password="${YNH_CONFIG_MAIN_ENCRYPTION_ENCRYPTION_PWD:-$old_encrypt_password}"
 ynh_print_ON
 
+# Compression algorithms
+old_ynh_compression="$(get_config_value ynh_compression_mode)"
+old_ynh_compression=${old_ynh_compression:-gzip}
+ynh_compression="${YNH_CONFIG_MAIN_COMPRESSION_YNH:-$old_ynh_compression}"
+old_files_compression="$(get_config_value files_compression_mode)"
+old_files_compression=${old_files_compression:-gzip}
+files_compression="${YNH_CONFIG_MAIN_COMPRESSION_FILES:-$old_files_compression}"
+
 # ynh_core_backup
 old_ynh_core_backup="$(get_config_value ynh_core_backup)"
 ynh_core_backup="${YNH_CONFIG_MAIN_BACKUP_TYPES_CORE_BACKUP:-$old_ynh_core_backup}"
@@ -91,6 +99,9 @@ show_config() {
     ynh_return "YNH_CONFIG_MAIN_ENCRYPTION_ENCRYPT=$encrypt"
     ynh_return "YNH_CONFIG_MAIN_ENCRYPTION_ENCRYPTION_PWD="
 
+    ynh_return "YNH_CONFIG_MAIN_COMPRESSION_YNH=$ynh_compression"
+    ynh_return "YNH_CONFIG_MAIN_COMPRESSION_FILES=$files_compression"
+
     ynh_return "YNH_CONFIG_MAIN_BACKUP_TYPES_CORE_BACKUP=$ynh_core_backup"
     ynh_return "YNH_CONFIG_MAIN_BACKUP_TYPES_APPS_BACKUP=$ynh_app_backup"
 
@@ -136,6 +147,37 @@ apply_config() {
     # MODIFY SETTINGS
     #=================================================
 
+    # Change the compression algorithms
+    # Replace "No compression" by "none" for the config file
+    if [ "$ynh_compression" == "No compression" ]; then
+        ynh_compression=none
+    fi
+    if [ "$ynh_compression" != "$old_ynh_compression" ]
+    then
+        # Update the config, or add the config if not yet existing
+        if grep "^ynh_compression_mode=" "$config_file"
+        then
+            ynh_replace_string --match_string="^ynh_compression_mode=.*" --replace_string="ynh_compression_mode=$ynh_compression" --target_file="$config_file"
+        else
+            echo "ynh_compression_mode=$ynh_compression" >> "$config_file"
+        fi
+    fi
+    # Replace "No compression" by "none" for the config file
+    if [ "$files_compression" == "No compression" ]; then
+        files_compression=none
+    fi
+    if [ "$files_compression" != "$old_files_compression" ]
+    then
+        # Update the config, or add the config if not yet existing
+        if grep "^files_compression_mode=" "$config_file"
+        then
+            ynh_replace_string --match_string="^files_compression_mode=.*" --replace_string="files_compression_mode=$files_compression" --target_file="$config_file"
+        else
+            echo "files_compression_mode=$files_compression" >> "$config_file"
+        fi
+        
+    fi
+
     # Change ynh_core_backup in the config file
     ynh_replace_string --match_string="^ynh_core_backup=.*" --replace_string="ynh_core_backup=$ynh_core_backup" --target_file="$config_file"