Explorar o código

Merge branch 'master' into change_url_script

frju365 %!s(int64=7) %!d(string=hai) anos
pai
achega
3a26b8b6e8
Modificáronse 10 ficheiros con 81 adicións e 42 borrados
  1. 3 3
      check_process.default
  2. 1 1
      conf/app.src
  3. 2 2
      conf/php-fpm.ini
  4. 13 0
      conf/systemd.service
  5. 1 1
      manifest.json
  6. 14 16
      scripts/backup
  7. 11 5
      scripts/install
  8. 3 2
      scripts/remove
  9. 9 9
      scripts/restore
  10. 24 3
      scripts/upgrade

+ 3 - 3
check_process.default

@@ -10,8 +10,8 @@
 		admin="john"	(USER)
 		language="fr"
 		is_public=1	(PUBLIC|public=1|private=0)
-  	password="pass"
-  	port="666"	(PORT)
+		password="pass"
+		port="666"	(PORT)
 	; Checks
 		pkg_linter=1
 		setup_sub_dir=1
@@ -23,7 +23,7 @@
 		backup_restore=1
 		multi_instance=1
 		incorrect_path=1
-		port_already_use=1
+		port_already_use=0
 		change_url=0
 ;;; Levels
 	Level 1=auto

+ 1 - 1
conf/app.src

@@ -1,6 +1,6 @@
 SOURCE_URL=url of app's source
 SOURCE_SUM=sha256 checksum
-SOURCE_SUM_PRG=sha256
+SOURCE_SUM_PRG=sha256sum
 SOURCE_FORMAT=tar.gz
 SOURCE_IN_SUBDIR=true
 SOURCE_FILENAME=

+ 2 - 2
conf/php-fpm.ini

@@ -1,9 +1,9 @@
-# Common values to change to increase file upload limit
+; Common values to change to increase file upload limit
 ; upload_max_filesize = 50M
 ; post_max_size = 50M
 ; mail.add_x_header = Off
 
-# Other common parameters
+; Other common parameters
 ; max_execution_time = 600
 ; max_input_time = 300
 ; memory_limit = 256M

+ 13 - 0
conf/systemd.service

@@ -0,0 +1,13 @@
+[Unit]
+Description=Small description of the service
+After=network.target
+
+[Service]
+Type=simple
+User=__APP__
+Group=__APP__
+WorkingDirectory=__FINALPATH__/
+ExecStart=__FINALPATH__/script >> /var/log/__APP__/__APP__.log 2>&1
+
+[Install]
+WantedBy=multi-user.target

+ 1 - 1
manifest.json

@@ -6,9 +6,9 @@
         "en": "Example package for YunoHost application.",
         "fr": "Exemple de package d’application pour YunoHost."
     },
+    "version": "1.0",
     "url": "https://example.com",
     "license": "free",
-    "version": "1.0",
     "maintainer": {
         "name": "John doe",
         "email": "john.doe@example.com",

+ 14 - 16
scripts/backup

@@ -2,13 +2,6 @@
 
 #=================================================
 # GENERIC START
-#=================================================
-# MANAGE SCRIPT FAILURE
-#=================================================
-
-# Exit on command errors and treat access to unset variables as an error
-set -eu
-
 #=================================================
 # IMPORT GENERIC HELPERS
 #=================================================
@@ -21,6 +14,13 @@ fi
 source _common.sh
 source /usr/share/yunohost/helpers
 
+#=================================================
+# MANAGE SCRIPT FAILURE
+#=================================================
+
+# Exit if an error occurs during the execution of the script
+ynh_abort_if_errors
+
 #=================================================
 # LOAD SETTINGS
 #=================================================
@@ -30,7 +30,6 @@ app=$YNH_APP_INSTANCE_NAME
 final_path=$(ynh_app_setting_get $app final_path)
 domain=$(ynh_app_setting_get $app domain)
 db_name=$(ynh_app_setting_get $app db_name)
-db_pwd=$(ynh_app_setting_get $app mysqlpwd)
 
 #=================================================
 # STANDARD BACKUP STEPS
@@ -38,27 +37,26 @@ db_pwd=$(ynh_app_setting_get $app mysqlpwd)
 # BACKUP THE APP MAIN DIR
 #=================================================
 
-ynh_backup "$final_path" "${backup_dir}$final_path"
+ynh_backup "$final_path"
 
 #=================================================
 # BACKUP THE NGINX CONFIGURATION
 #=================================================
 
-ynh_backup "/etc/nginx/conf.d/$domain.d/$app.conf" "${backup_dir}/etc/nginx/conf.d/$domain.d/$app.conf"
+ynh_backup "/etc/nginx/conf.d/$domain.d/$app.conf"
 
 #=================================================
 # BACKUP THE PHP-FPM CONFIGURATION
 #=================================================
 
-ynh_backup "/etc/php5/fpm/pool.d/$app.conf" "${backup_dir}/etc/php5/fpm/pool.d/$app.conf"
-ynh_backup "/etc/php5/fpm/conf.d/20-$app.ini" "${backup_dir}/etc/php5/fpm/conf.d/20-$app.ini"
+ynh_backup "/etc/php5/fpm/pool.d/$app.conf"
+ynh_backup "/etc/php5/fpm/conf.d/20-$app.ini"
 
 #=================================================
 # BACKUP THE MYSQL DATABASE
 #=================================================
 
 ynh_mysql_dump_db "$db_name" > db.sql
-ynh_backup "db.sql" "${backup_dir}/db.sql"
 
 #=================================================
 # SPECIFIC BACKUP
@@ -66,16 +64,16 @@ ynh_backup "db.sql" "${backup_dir}/db.sql"
 # BACKUP LOGROTATE
 #=================================================
 
-ynh_backup "/etc/logrotate.d/$app" "${backup_dir}/etc/logrotate.d/$app"
+ynh_backup "/etc/logrotate.d/$app"
 
 #=================================================
 # BACKUP SYSTEMD
 #=================================================
 
-ynh_backup "/etc/systemd/system/$app.service" "${backup_dir}/etc/systemd/system/$app.service"
+ynh_backup "/etc/systemd/system/$app.service"
 
 #=================================================
 # BACKUP THE CRON FILE
 #=================================================
 
-ynh_backup "/etc/cron.d/$app" "${backup_dir}/etc/cron.d/$app"
+ynh_backup "/etc/cron.d/$app"

+ 11 - 5
scripts/install

@@ -42,6 +42,9 @@ app=$YNH_APP_INSTANCE_NAME
 # CHECK IF THE APP CAN BE INSTALLED WITH THESE ARGS
 #=================================================
 
+final_path=/var/www/$app
+test ! -e "$final_path" || ynh_die "This path already contains a folder"
+
 # Normalize the url path syntax
 path_url=$(ynh_normalize_url_path $path_url)
 
@@ -50,9 +53,6 @@ ynh_webpath_available $domain $path_url
 # Register (book) web path
 ynh_webpath_register $app $domain $path_url
 
-final_path=/var/www/$app
-test ! -e "$final_path" || ynh_die "This path already contains a folder"
-
 #=================================================
 # STORE SETTINGS FROM MANIFEST
 #=================================================
@@ -118,7 +118,7 @@ ynh_system_user_create $app
 #=================================================
 
 # Create a dedicated php-fpm config
-ynh_fpm_config
+ynh_add_fpm_config
 
 #=================================================
 # SPECIFIC SETUP
@@ -141,7 +141,7 @@ ynh_systemd_config
 chown -R $app: $final_path
 
 # Set the app as temporarily public for curl call
-ynh_app_setting_set $app unprotected_uris "/"
+ynh_app_setting_set $app skipped_uris "/"
 # Reload SSOwat config
 yunohost app ssowatconf
 
@@ -151,6 +151,12 @@ systemctl reload nginx
 # Installation with curl
 ynh_local_curl "/INSTALL_PATH" "key1=value1" "key2=value2" "key3=value3"
 
+#=================================================
+# MODIFY A CONFIG FILE
+#=================================================
+
+ynh_replace_string "match_string" "replace_string" "$final_path/CONFIG_FILE"
+
 #=================================================
 # STORE THE CHECKSUM OF THE CONFIG FILE
 #=================================================

+ 3 - 2
scripts/remove

@@ -18,6 +18,7 @@ app=$YNH_APP_INSTANCE_NAME
 domain=$(ynh_app_setting_get $app domain)
 port=$(ynh_app_setting_get $app port)
 db_name=$(ynh_app_setting_get $app db_name)
+final_path=$(ynh_app_setting_get $app final_path)
 
 #=================================================
 # STANDARD REMOVE
@@ -57,7 +58,7 @@ ynh_mysql_remove_db $db_name $db_name
 #=================================================
 
 # Remove the app directory securely
-ynh_secure_remove "/var/www/$app"
+ynh_secure_remove "$final_path"
 
 #=================================================
 # REMOVE NGINX CONFIGURATION
@@ -87,7 +88,7 @@ ynh_remove_logrotate
 if yunohost firewall list | grep -q "\- $port$"
 then
 	echo "Close port $port"
-	QUIET yunohost firewall disallow TCP $port
+	yunohost firewall disallow TCP $port 2>&1
 fi
 
 #=================================================

+ 9 - 9
scripts/restore

@@ -2,13 +2,6 @@
 
 #=================================================
 # GENERIC START
-#=================================================
-# MANAGE SCRIPT FAILURE
-#=================================================
-
-# Exit on command errors and treat access to unset variables as an error
-set -eu
-
 #=================================================
 # IMPORT GENERIC HELPERS
 #=================================================
@@ -21,6 +14,13 @@ fi
 source _common.sh
 source /usr/share/yunohost/helpers
 
+#=================================================
+# MANAGE SCRIPT FAILURE
+#=================================================
+
+# Exit if an error occurs during the execution of the script
+ynh_abort_if_errors
+
 #=================================================
 # LOAD SETTINGS
 #=================================================
@@ -36,7 +36,7 @@ db_name=$(ynh_app_setting_get $app db_name)
 # CHECK IF THE APP CAN BE RESTORED
 #=================================================
 
-yunohost app checkurl "${domain}${path_url}" -a "$app" \
+ynh_webpath_available $domain $path_url \
 	|| ynh_die "Path not available: ${domain}${path_url}"
 test ! -d $final_path \
 	|| ynh_die "There is already a directory: $final_path "
@@ -113,7 +113,7 @@ systemctl enable $app.service
 ynh_restore_file "/etc/cron.d/$app"
 
 #=================================================
-# BACKUP THE LOGROTATE CONFIGURATION
+# RESTORE THE LOGROTATE CONFIGURATION
 #=================================================
 
 ynh_restore_file "/etc/logrotate.d/$app"

+ 24 - 3
scripts/upgrade

@@ -27,19 +27,40 @@ db_name=$(ynh_app_setting_get $app db_name)
 # ENSURE DOWNWARD COMPATIBILITY
 #=================================================
 
+# Fix is_public as a boolean value
 if [ "$is_public" = "Yes" ]; then
-	ynh_app_setting_set $app is_public 1	# Fix is_public as a boolean value
+	ynh_app_setting_set $app is_public 1
 	is_public=1
 elif [ "$is_public" = "No" ]; then
 	ynh_app_setting_set $app is_public 0
 	is_public=0
 fi
 
-if [ -z $db_name ]; then	# If db_name doesn't exist, create it
+# If db_name doesn't exist, create it
+if [ -z $db_name ]; then
 	db_name=$(ynh_sanitize_dbid $app)
 	ynh_app_setting_set $app db_name $db_name
 fi
 
+# If final_path doesn't exist, create it
+if [ -z $final_path ]; then
+	final_path=/var/www/$app
+	ynh_app_setting_set $app final_path $final_path
+fi
+
+#=================================================
+# BACKUP BEFORE UPGRADE THEN ACTIVE TRAP
+#=================================================
+
+# Backup the current version of the app
+ynh_backup_before_upgrade
+ynh_clean_setup () {
+	# restore it if the upgrade fails
+	ynh_restore_upgradebackup
+}
+# Exit if an error occurs during the execution of the script
+ynh_abort_if_errors
+
 #=================================================
 # CHECK THE PATH
 #=================================================
@@ -75,7 +96,7 @@ ynh_system_user_create $app
 #=================================================
 
 # Create a dedicated php-fpm config
-ynh_fpm_config
+ynh_add_fpm_config
 
 #=================================================
 # SPECIFIC UPGRADE