mirror of
https://github.com/YunoHost-Apps/archivist_ynh.git
synced 2024-09-03 18:15:55 +02:00
[autopatch] Automatic patch attempt for helpers 2.1
This commit is contained in:
parent
2a14922127
commit
c15e937131
9 changed files with 67 additions and 327 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -1,3 +1,4 @@
|
|||
*~
|
||||
*.sw[op]
|
||||
Notes
|
||||
.DS_Store
|
||||
|
|
|
@ -16,7 +16,8 @@ license = "GPL-3.0"
|
|||
code = "https://github.com/maniackcrudelis/archivist"
|
||||
|
||||
[integration]
|
||||
yunohost = ">= 11.2.9"
|
||||
yunohost = ">= 11.2.18"
|
||||
helpers_version = "2.1"
|
||||
architectures = "all"
|
||||
multi_instance = true
|
||||
ldap = "not_relevant"
|
||||
|
|
|
@ -1,11 +1,7 @@
|
|||
#!/bin/bash
|
||||
|
||||
#=================================================
|
||||
# COMMON VARIABLES
|
||||
#=================================================
|
||||
|
||||
#=================================================
|
||||
# PERSONAL HELPERS
|
||||
# COMMON VARIABLES AND CUSTOM HELPERS
|
||||
#=================================================
|
||||
|
||||
_set_frequencies() {
|
||||
|
@ -31,27 +27,19 @@ _set_frequencies() {
|
|||
frequency_human="once a month on the first sunday"
|
||||
;;
|
||||
*)
|
||||
ynh_die --message="Unsupported frequency $frequency" ;;
|
||||
ynh_die "Unsupported frequency $frequency" ;;
|
||||
esac
|
||||
|
||||
# For POST_INSTALL.md
|
||||
ynh_app_setting_set --app="$app" --key=frequency_human --value="$frequency_human"
|
||||
ynh_app_setting_set --key=frequency_human --value="$frequency_human"
|
||||
}
|
||||
|
||||
_fix_frequencies() {
|
||||
case "$frequency" in
|
||||
Daily) frequency="daily" ; ynh_app_setting_set --app="$app" --key="frequency" --value="$frequency" ;;
|
||||
"Each 3 days") frequency="days_3" ; ynh_app_setting_set --app="$app" --key="frequency" --value="$frequency" ;;
|
||||
"Weekly") frequency="weekly" ; ynh_app_setting_set --app="$app" --key="frequency" --value="$frequency" ;;
|
||||
"Biweekly") frequency="weeks_2" ; ynh_app_setting_set --app="$app" --key="frequency" --value="$frequency" ;;
|
||||
"Monthly") frequency="monthly" ; ynh_app_setting_set --app="$app" --key="frequency" --value="$frequency" ;;
|
||||
Daily) frequency="daily" ; ynh_app_setting_set --key="frequency" --value="$frequency" ;;
|
||||
"Each 3 days") frequency="days_3" ; ynh_app_setting_set --key="frequency" --value="$frequency" ;;
|
||||
"Weekly") frequency="weekly" ; ynh_app_setting_set --key="frequency" --value="$frequency" ;;
|
||||
"Biweekly") frequency="weeks_2" ; ynh_app_setting_set --key="frequency" --value="$frequency" ;;
|
||||
"Monthly") frequency="monthly" ; ynh_app_setting_set --key="frequency" --value="$frequency" ;;
|
||||
esac
|
||||
}
|
||||
|
||||
#=================================================
|
||||
# EXPERIMENTAL HELPERS
|
||||
#=================================================
|
||||
|
||||
#=================================================
|
||||
# FUTURE OFFICIAL HELPERS
|
||||
#=================================================
|
||||
|
|
|
@ -8,33 +8,30 @@
|
|||
source ../settings/scripts/_common.sh
|
||||
source /usr/share/yunohost/helpers
|
||||
|
||||
#=================================================
|
||||
# DECLARE DATA AND CONF FILES TO BACKUP
|
||||
#=================================================
|
||||
ynh_print_info --message="Declaring files to be backed up..."
|
||||
ynh_print_info "Declaring files to be backed up..."
|
||||
|
||||
#=================================================
|
||||
# BACKUP THE APP MAIN DIR
|
||||
#=================================================
|
||||
|
||||
ynh_backup --src_path="$install_dir"
|
||||
ynh_backup "$install_dir"
|
||||
|
||||
#=================================================
|
||||
# BACKUP SYSTEM
|
||||
#=================================================
|
||||
|
||||
ynh_backup --src_path="/etc/logrotate.d/$app"
|
||||
ynh_backup "/etc/logrotate.d/$app"
|
||||
|
||||
ynh_backup --src_path="/etc/cron.d/$app"
|
||||
ynh_backup "/etc/cron.d/$app"
|
||||
|
||||
#=================================================
|
||||
# BACKUP VARIOUS FILES
|
||||
#=================================================
|
||||
|
||||
ynh_backup --src_path="/var/log/$app/"
|
||||
ynh_backup "/var/log/$app/"
|
||||
|
||||
#=================================================
|
||||
# END OF SCRIPT
|
||||
#=================================================
|
||||
|
||||
ynh_print_info --message="Backup script completed for $app. (YunoHost will then actually copy those files to the archive)."
|
||||
ynh_print_info "Backup script completed for $app. (YunoHost will then actually copy those files to the archive)."
|
||||
|
|
248
scripts/config
248
scripts/config
|
@ -1,248 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
#=================================================
|
||||
# GENERIC STARTING
|
||||
#=================================================
|
||||
# IMPORT GENERIC HELPERS
|
||||
#=================================================
|
||||
|
||||
source _common.sh
|
||||
source /usr/share/yunohost/helpers
|
||||
|
||||
#=================================================
|
||||
# RETRIEVE ARGUMENTS
|
||||
#=================================================
|
||||
|
||||
app=$YNH_APP_INSTANCE_NAME
|
||||
|
||||
final_path=$(ynh_app_setting_get --app=$app --key=final_path)
|
||||
|
||||
#=================================================
|
||||
# SPECIFIC CODE
|
||||
#=================================================
|
||||
# DECLARE GENERIC FUNCTION
|
||||
#=================================================
|
||||
|
||||
config_file="$final_path/Backup_list.conf"
|
||||
passkey="$final_path/passkey"
|
||||
|
||||
get_config_value() {
|
||||
option_name="$1"
|
||||
# Get the value of this option in the config file
|
||||
grep "^$option_name=" "$config_file" | cut -d= -f2
|
||||
}
|
||||
|
||||
#=================================================
|
||||
# LOAD VALUES
|
||||
#=================================================
|
||||
|
||||
# Load the real value from the app config or elsewhere.
|
||||
# Then get the value from the form.
|
||||
# If the form has a value for a variable, take the value from the form,
|
||||
# Otherwise, keep the value from the app config.
|
||||
|
||||
# Encryption
|
||||
old_encrypt="$(get_config_value encrypt)"
|
||||
encrypt="${YNH_CONFIG_MAIN_ENCRYPTION_ENCRYPT:-$old_encrypt}"
|
||||
|
||||
# Encryption password
|
||||
ynh_print_OFF
|
||||
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}"
|
||||
|
||||
# ynh_app_backup
|
||||
if [ -n "$(get_config_value ynh_app_backup)" ]
|
||||
then
|
||||
old_ynh_app_backup=true
|
||||
else
|
||||
old_ynh_app_backup=false
|
||||
fi
|
||||
ynh_app_backup="${YNH_CONFIG_MAIN_BACKUP_TYPES_APPS_BACKUP:-$old_ynh_app_backup}"
|
||||
|
||||
# Frequency
|
||||
old_frequency="$(grep "^frequency: " "/etc/yunohost/apps/$app/settings.yml" | cut -d' ' -f2)"
|
||||
frequency="${YNH_CONFIG_MAIN_BACKUP_OPTIONS_FREQUENCY:-$old_frequency}"
|
||||
|
||||
# Max size
|
||||
old_max_size="$(get_config_value max_size)"
|
||||
max_size="${YNH_CONFIG_MAIN_BACKUP_OPTIONS_MAX_SIZE:-$old_max_size}"
|
||||
|
||||
# Overwrite cron file
|
||||
old_overwrite_cron="$(ynh_app_setting_get $app overwrite_cron)"
|
||||
overwrite_cron="${YNH_CONFIG_MAIN_OVERWRITE_FILES_OVERWRITE_CRON:-$old_overwrite_cron}"
|
||||
|
||||
# Type of admin mail configuration
|
||||
old_admin_mail_html="$(ynh_app_setting_get $app admin_mail_html)"
|
||||
admin_mail_html="${YNH_CONFIG_MAIN_GLOBAL_CONFIG_EMAIL_TYPE:-$old_admin_mail_html}"
|
||||
|
||||
#=================================================
|
||||
# SHOW_CONFIG FUNCTION FOR 'SHOW' COMMAND
|
||||
#=================================================
|
||||
|
||||
show_config() {
|
||||
# here you are supposed to read some config file/database/other then print the values
|
||||
# ynh_return "YNH_CONFIG_${PANEL_ID}_${SECTION_ID}_${OPTION_ID}=value"
|
||||
|
||||
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"
|
||||
|
||||
ynh_return "YNH_CONFIG_MAIN_BACKUP_OPTIONS_FREQUENCY=$frequency"
|
||||
ynh_return "YNH_CONFIG_MAIN_BACKUP_OPTIONS_MAX_SIZE=$max_size"
|
||||
|
||||
ynh_return "YNH_CONFIG_MAIN_OVERWRITE_FILES_OVERWRITE_CRON=$overwrite_cron"
|
||||
|
||||
ynh_return "YNH_CONFIG_MAIN_GLOBAL_CONFIG_EMAIL_TYPE=$admin_mail_html"
|
||||
}
|
||||
|
||||
#=================================================
|
||||
# MODIFY THE CONFIGURATION
|
||||
#=================================================
|
||||
|
||||
apply_config() {
|
||||
|
||||
#=================================================
|
||||
# MODIFY THE PASSWORD
|
||||
#=================================================
|
||||
|
||||
# Change the password if needed
|
||||
if [ "$encrypt" ]
|
||||
then
|
||||
ynh_print_OFF
|
||||
test -n "$encrypt_password" || ynh_die --message="The password for encryption can't be empty if you choose to enable encryption."
|
||||
ynh_print_ON
|
||||
# Replace the password by the previous one
|
||||
passkey="$final_path/passkey"
|
||||
ynh_print_OFF; echo "$encrypt_password" > "$passkey"; ynh_print_ON
|
||||
chmod 400 "$passkey"
|
||||
ynh_replace_string --match_string="^cryptpass=.*" --replace_string="cryptpass=$passkey" --target_file="$config_file"
|
||||
fi
|
||||
|
||||
#=================================================
|
||||
# MODIFY ENCRYPT SETTING
|
||||
#=================================================
|
||||
|
||||
# Change encrypt in the config file
|
||||
ynh_replace_string --match_string="^encrypt=.*" --replace_string="encrypt=$encrypt" --target_file="$config_file"
|
||||
|
||||
#=================================================
|
||||
# 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"
|
||||
|
||||
# Change ynh_app_backup in the config file
|
||||
if [ "$ynh_app_backup" = true ] && [ "$old_ynh_app_backup" = false ]
|
||||
then
|
||||
# If ynh_app_backup changed from false to true.
|
||||
# Add all current applications to the backup
|
||||
while read backup_app
|
||||
do
|
||||
ynh_print_info --message="Add a backup for the app $backup_app."
|
||||
ynh_replace_string --match_string="^ynh_app_backup=$" --replace_string="ynh_app_backup=$backup_app\n&" --target_file="$config_file"
|
||||
done <<< "$(yunohost app list -i | grep id: | sed 's/.*id: //')"
|
||||
elif [ "$ynh_app_backup" = false ] && [ "$old_ynh_app_backup" = true ]
|
||||
then
|
||||
# Remove all app currently backup
|
||||
# By deleting all line starting by 'ynh_app_backup=' and having something after '='
|
||||
sed -i "/^ynh_app_backup=.\+$/d" "$config_file"
|
||||
fi
|
||||
|
||||
# Change frequency in the cron file and store the value into the settings
|
||||
ynh_app_setting_set --app=$app --key=frequency --value="$frequency"
|
||||
if [ "$frequency" = "Daily" ]; then
|
||||
cron_freq="0 2 * * *"
|
||||
run_freq="every day"
|
||||
elif [ "$frequency" = "Each 3 days" ]; then
|
||||
cron_freq="0 2 */3 * *"
|
||||
run_freq="each 3 days"
|
||||
elif [ "$frequency" = "Weekly" ]; then
|
||||
cron_freq="0 2 * * 0"
|
||||
run_freq="once a week on sunday"
|
||||
elif [ "$frequency" = "Biweekly" ]; then
|
||||
cron_freq="0 2 * * 0/2"
|
||||
run_freq="one sunday out of two"
|
||||
else # Monthly
|
||||
cron_freq="0 2 1 * *"
|
||||
run_freq="once a month on the first sunday"
|
||||
fi
|
||||
ynh_replace_string --match_string=".* root" --replace_string="$cron_freq root" --target_file=/etc/cron.d/$app
|
||||
|
||||
# Change max_size in the config file
|
||||
ynh_replace_string --match_string="^max_size=.*" --replace_string="max_size=$max_size" --target_file="$config_file"
|
||||
|
||||
#=================================================
|
||||
# MODIFY OVERWRITTING SETTINGS
|
||||
#=================================================
|
||||
|
||||
# Set overwrite_cron
|
||||
ynh_app_setting_set --app=$app --key=overwrite_cron --value="$overwrite_cron"
|
||||
|
||||
#=================================================
|
||||
# MODIFY EMAIL SETTING
|
||||
#=================================================
|
||||
|
||||
# Set admin_mail_html
|
||||
ynh_app_setting_set --app=$app --key=admin_mail_html --value="$admin_mail_html"
|
||||
}
|
||||
|
||||
#=================================================
|
||||
# GENERIC FINALIZATION
|
||||
#=================================================
|
||||
# SELECT THE ACTION FOLLOWING THE GIVEN ARGUMENT
|
||||
#=================================================
|
||||
|
||||
case $1 in
|
||||
show) show_config;;
|
||||
apply) apply_config;;
|
||||
esac
|
|
@ -12,31 +12,30 @@ source /usr/share/yunohost/helpers
|
|||
#=================================================
|
||||
|
||||
if [ "$encrypt" -eq 1 ] && [ -z "$encryption_pwd" ]; then
|
||||
ynh_die --message="encryption_pwd can't be empty if you choose to enable encryption."
|
||||
ynh_die "encryption_pwd can't be empty if you choose to enable encryption."
|
||||
fi
|
||||
# Not saved as settings by default
|
||||
ynh_app_setting_set --app="$app" --key="encryption_pwd" --value="$encryption_pwd"
|
||||
ynh_app_setting_set --key="encryption_pwd" --value="$encryption_pwd"
|
||||
|
||||
_set_frequencies
|
||||
|
||||
ynh_app_setting_set --app="$app" --key=overwrite_cron --value=1
|
||||
ynh_app_setting_set --key=overwrite_cron --value=1
|
||||
|
||||
#=================================================
|
||||
# DOWNLOAD, CHECK AND UNPACK SOURCE
|
||||
#=================================================
|
||||
ynh_script_progression --message="Setting up source files..." --weight=3
|
||||
ynh_script_progression "Setting up source files..."
|
||||
|
||||
# Download, check integrity, uncompress and patch the source from app.src
|
||||
ynh_setup_source --dest_dir="$install_dir"
|
||||
|
||||
chown -R "root:root" "$install_dir"
|
||||
|
||||
#REMOVEME? Assuming the install dir is setup using ynh_setup_source, the proper chmod/chowns are now already applied and it shouldn't be necessary to tweak perms | chown -R "root:root" "$install_dir"
|
||||
chown -R "root:root" "$data_dir"
|
||||
|
||||
#=================================================
|
||||
# CONFIGURE ARCHIVIST
|
||||
#=================================================
|
||||
ynh_script_progression --message="Configuring Archivist..." --weight=2
|
||||
ynh_script_progression "Configuring Archivist..."
|
||||
|
||||
if [ "$encrypt" -eq 1 ]; then
|
||||
encrypt=true
|
||||
|
@ -57,37 +56,37 @@ fi
|
|||
config_file="$install_dir/Backup_list.conf"
|
||||
cp "$install_dir/Backup_list.conf.default" "$config_file"
|
||||
|
||||
ynh_replace_string --target_file="$config_file" --match_string="^backup_dir=.*" --replace_string="backup_dir=$data_dir/backup"
|
||||
ynh_replace_string --target_file="$config_file" --match_string="^enc_backup_dir=.*" --replace_string="enc_backup_dir=$data_dir/encrypted_backup"
|
||||
ynh_replace --file="$config_file" --match="^backup_dir=.*" --replace="backup_dir=$data_dir/backup"
|
||||
ynh_replace --file="$config_file" --match="^enc_backup_dir=.*" --replace="enc_backup_dir=$data_dir/encrypted_backup"
|
||||
|
||||
ynh_replace_string --target_file="$config_file" --match_string="^encrypt=.*" --replace_string="encrypt=$encrypt"
|
||||
ynh_replace_string --target_file="$config_file" --match_string="^cryptpass=.*" --replace_string="cryptpass=$passkey"
|
||||
ynh_replace --file="$config_file" --match="^encrypt=.*" --replace="encrypt=$encrypt"
|
||||
ynh_replace --file="$config_file" --match="^cryptpass=.*" --replace="cryptpass=$passkey"
|
||||
|
||||
ynh_replace_string --target_file="$config_file" --match_string="^ynh_core_backup=.*" --replace_string="ynh_core_backup=$core_backup"
|
||||
ynh_replace --file="$config_file" --match="^ynh_core_backup=.*" --replace="ynh_core_backup=$core_backup"
|
||||
|
||||
if [ $apps_backup -eq 1 ]; then
|
||||
# Add all current applications to the backup
|
||||
while read -r backup_app; do
|
||||
ynh_replace_string --target_file="$config_file" --match_string="^ynh_app_backup=$" --replace_string="ynh_app_backup=$backup_app\n&"
|
||||
ynh_replace --file="$config_file" --match="^ynh_app_backup=$" --replace="ynh_app_backup=$backup_app\n&"
|
||||
done <<< "$(yunohost app list | grep 'id:' | sed 's/.*id: //')"
|
||||
fi
|
||||
|
||||
# Calculate and store the config file checksum into the app settings
|
||||
ynh_store_file_checksum --file="$config_file"
|
||||
ynh_store_file_checksum "$config_file"
|
||||
|
||||
#=================================================
|
||||
# SYSTEM CONFIGURATION
|
||||
#=================================================
|
||||
ynh_script_progression --message="Adding system configurations related to $app..." --weight=1
|
||||
ynh_script_progression "Adding system configurations related to $app..."
|
||||
|
||||
# Use logrotate to manage application logfile(s)
|
||||
ynh_use_logrotate
|
||||
ynh_config_add_logrotate
|
||||
|
||||
# Add Cron configuration file
|
||||
ynh_add_config --template="archivist.cron" --destination="/etc/cron.d/$app"
|
||||
ynh_config_add --template="archivist.cron" --destination="/etc/cron.d/$app"
|
||||
|
||||
#=================================================
|
||||
# END OF SCRIPT
|
||||
#=================================================
|
||||
|
||||
ynh_script_progression --message="Installation of $app completed" --last
|
||||
ynh_script_progression "Installation of $app completed"
|
||||
|
|
|
@ -10,18 +10,18 @@ source /usr/share/yunohost/helpers
|
|||
#=================================================
|
||||
# REMOVE SYSTEM CONFIGURATIONS
|
||||
#=================================================
|
||||
ynh_script_progression --message="Removing system configurations related to $app..." --weight=1
|
||||
ynh_script_progression "Removing system configurations related to $app..."
|
||||
|
||||
# Remove the app-specific logrotate config
|
||||
ynh_remove_logrotate
|
||||
ynh_config_remove_logrotate
|
||||
|
||||
# Remove a cron file
|
||||
ynh_secure_remove --file="/etc/cron.d/$app"
|
||||
ynh_safe_rm "/etc/cron.d/$app"
|
||||
|
||||
ynh_secure_remove --file="/var/log/$app"
|
||||
#REMOVEME? (Apps should not remove their log dir during remove ... this should only happen if --purge is used, and be handled by the core...) ynh_safe_rm "/var/log/$app"
|
||||
|
||||
#=================================================
|
||||
# END OF SCRIPT
|
||||
#=================================================
|
||||
|
||||
ynh_script_progression --message="Removal of $app completed" --last
|
||||
ynh_script_progression "Removal of $app completed"
|
||||
|
|
|
@ -11,38 +11,37 @@ source /usr/share/yunohost/helpers
|
|||
#=================================================
|
||||
# RESTORE THE APP MAIN DIR
|
||||
#=================================================
|
||||
ynh_script_progression --message="Restoring the app main directory..." --weight=1
|
||||
ynh_script_progression "Restoring the app main directory..."
|
||||
|
||||
ynh_restore_file --origin_path="$install_dir"
|
||||
|
||||
chown -R "root:root" "$install_dir"
|
||||
ynh_restore "$install_dir"
|
||||
|
||||
#REMOVEME? Assuming the install dir is setup using ynh_setup_source, the proper chmod/chowns are now already applied and it shouldn't be necessary to tweak perms | chown -R "root:root" "$install_dir"
|
||||
#=================================================
|
||||
# RESTORE THE DATA DIRECTORY
|
||||
#=================================================
|
||||
ynh_script_progression --message="Restoring the data directory..." --weight=1
|
||||
ynh_script_progression "Restoring the data directory..."
|
||||
|
||||
ynh_restore_file --origin_path="$data_dir" --not_mandatory
|
||||
ynh_restore "$data_dir"
|
||||
|
||||
chown -R "root:root" "$data_dir"
|
||||
|
||||
#=================================================
|
||||
# RESTORE SYSTEM CONFIGURATIONS
|
||||
#=================================================
|
||||
ynh_script_progression --message="Restoring system configurations related to $app..." --weight=1
|
||||
ynh_script_progression "Restoring system configurations related to $app..."
|
||||
|
||||
ynh_restore_file --origin_path="/etc/logrotate.d/$app"
|
||||
ynh_restore "/etc/logrotate.d/$app"
|
||||
|
||||
ynh_restore_file --origin_path="/etc/cron.d/$app"
|
||||
ynh_restore "/etc/cron.d/$app"
|
||||
|
||||
#=================================================
|
||||
# RESTORE VARIOUS FILES
|
||||
#=================================================
|
||||
|
||||
ynh_restore_file --origin_path="/var/log/$app/"
|
||||
ynh_restore "/var/log/$app/"
|
||||
|
||||
#=================================================
|
||||
# END OF SCRIPT
|
||||
#=================================================
|
||||
|
||||
ynh_script_progression --message="Restoration completed for $app" --last
|
||||
ynh_script_progression "Restoration completed for $app"
|
||||
|
|
|
@ -10,7 +10,7 @@ source /usr/share/yunohost/helpers
|
|||
#=================================================
|
||||
# ENSURE DOWNWARD COMPATIBILITY
|
||||
#=================================================
|
||||
ynh_script_progression --message="Ensuring downward compatibility..."
|
||||
ynh_script_progression "Ensuring downward compatibility..."
|
||||
|
||||
_fix_frequencies
|
||||
_set_frequencies
|
||||
|
@ -23,63 +23,66 @@ if [ -z "${encrypt:-}" ]; then
|
|||
else
|
||||
encrypt=0
|
||||
fi
|
||||
ynh_app_setting_set --app="$app" --key="encrypt" --value="$encrypt"
|
||||
ynh_app_setting_set --key="encrypt" --value="$encrypt"
|
||||
fi
|
||||
|
||||
# If core_backup doesn't exist, create it
|
||||
# FIXMEhelpers2.1: maybe replace with: ynh_app_setting_set_default --key=core_backup --value="$(grep "^ynh_core_backup=" "$install_dir/Backup_list.conf" | cut -d= -f2)"
|
||||
if [ -z "${core_backup:-}" ]; then
|
||||
core_backup="$(grep "^ynh_core_backup=" "$install_dir/Backup_list.conf" | cut -d= -f2)"
|
||||
ynh_app_setting_set --app="$app" --key="core_backup" --value="$core_backup"
|
||||
ynh_app_setting_set --key="core_backup" --value="$core_backup"
|
||||
fi
|
||||
|
||||
# If apps_backup doesn't exist, create it
|
||||
# FIXMEhelpers2.1: maybe replace with: ynh_app_setting_set_default --key=apps_backup --value="$(grep --count --max-count=1 "^ynh_app_backup=" "$install_dir/Backup_list.conf")"
|
||||
if [ -z "${apps_backup:-}" ]; then
|
||||
apps_backup="$(grep --count --max-count=1 "^ynh_app_backup=" "$install_dir/Backup_list.conf")"
|
||||
ynh_app_setting_set --app="$app" --key="apps_backup" --value="$apps_backup"
|
||||
ynh_app_setting_set --key="apps_backup" --value="$apps_backup"
|
||||
fi
|
||||
|
||||
# If overwrite_cron doesn't exist, create it
|
||||
# FIXMEhelpers2.1: maybe replace with: ynh_app_setting_set_default --key=overwrite_cron --value=1
|
||||
if [ -z "${overwrite_cron:-}" ]; then
|
||||
overwrite_cron=1
|
||||
ynh_app_setting_set --app="$app" --key="overwrite_cron" --value="$overwrite_cron"
|
||||
ynh_app_setting_set --key="overwrite_cron" --value="$overwrite_cron"
|
||||
fi
|
||||
|
||||
# If admin_mail_html doesn't exist, create it
|
||||
# FIXMEhelpers2.1: maybe replace with: ynh_app_setting_set_default --key=admin_mail_html --value=1
|
||||
if [ -z "${admin_mail_html:-}" ]; then
|
||||
admin_mail_html=1
|
||||
ynh_app_setting_set --app="$app" --key="admin_mail_html" --value="$admin_mail_html"
|
||||
ynh_app_setting_set --key="admin_mail_html" --value="$admin_mail_html"
|
||||
fi
|
||||
|
||||
#=================================================
|
||||
# DOWNLOAD, CHECK AND UNPACK SOURCE
|
||||
#=================================================
|
||||
ynh_script_progression --message="Upgrading source files..." --weight=2
|
||||
ynh_script_progression "Upgrading source files..."
|
||||
|
||||
# Download, check integrity, uncompress and patch the source from app.src
|
||||
ynh_setup_source --dest_dir="$install_dir" --full_replace=1 --keep="passkey Backup_list.conf"
|
||||
|
||||
chown -R "root:root" "$install_dir"
|
||||
ynh_setup_source --dest_dir="$install_dir" --full_replace --keep="passkey Backup_list.conf"
|
||||
|
||||
#REMOVEME? Assuming the install dir is setup using ynh_setup_source, the proper chmod/chowns are now already applied and it shouldn't be necessary to tweak perms | chown -R "root:root" "$install_dir"
|
||||
#=================================================
|
||||
# UPDATE A CONFIG FILE
|
||||
#=================================================
|
||||
ynh_script_progression --message="Updating $app's configuration files..." --weight=1
|
||||
ynh_script_progression "Updating $app's configuration files..."
|
||||
|
||||
#=================================================
|
||||
# REAPPLY SYSTEM CONFIGURATIONS
|
||||
#=================================================
|
||||
ynh_script_progression --message="Upgrading system configurations related to $app..." --weight=1
|
||||
ynh_script_progression "Upgrading system configurations related to $app..."
|
||||
|
||||
# Use logrotate to manage app-specific logfile(s)
|
||||
ynh_use_logrotate --non-append
|
||||
ynh_config_add_logrotate
|
||||
|
||||
if (( overwrite_cron == 1 )); then
|
||||
# Add Cron configuration file
|
||||
ynh_add_config --template="archivist.cron" --destination="/etc/cron.d/$app"
|
||||
ynh_config_add --template="archivist.cron" --destination="/etc/cron.d/$app"
|
||||
fi
|
||||
|
||||
#=================================================
|
||||
# END OF SCRIPT
|
||||
#=================================================
|
||||
|
||||
ynh_script_progression --message="Upgrade of $app completed" --last
|
||||
ynh_script_progression "Upgrade of $app completed"
|
||||
|
|
Loading…
Add table
Reference in a new issue