Browse Source

make script compatible with shellcheck (package not tested actually)

Mickael 6 years ago
parent
commit
be5a004223
5 changed files with 149 additions and 148 deletions
  1. 1 1
      scripts/backup
  2. 74 73
      scripts/install
  3. 6 6
      scripts/remove
  4. 11 11
      scripts/restore
  5. 57 57
      scripts/upgrade

+ 1 - 1
scripts/backup

@@ -6,7 +6,7 @@
 # IMPORT GENERIC HELPERS
 #=================================================
 
-source ../settings/scripts/_common.sh
+source _common.sh
 source /usr/share/yunohost/helpers
 
 #=================================================

+ 74 - 73
scripts/install

@@ -19,11 +19,11 @@ ynh_abort_if_errors
 # RETRIEVE ARGUMENTS FROM THE MANIFEST
 #=================================================
 
-domain=$YNH_APP_ARG_DOMAIN
-path_url=$YNH_APP_ARG_PATH
-admin=$YNH_APP_ARG_ADMIN
-is_public=$YNH_APP_ARG_IS_PUBLIC
-language=$YNH_APP_ARG_LANGUAGE
+domain="$YNH_APP_ARG_DOMAIN"
+path_url="$YNH_APP_ARG_PATH"
+admin="$YNH_APP_ARG_ADMIN"
+is_public="$YNH_APP_ARG_IS_PUBLIC"
+language="$YNH_APP_ARG_LANGUAGE"
 
 ### If it's a multi-instance app, meaning it can be installed several times independently
 ### The id of the app as stated in the manifest is available as $YNH_APP_ID
@@ -35,7 +35,7 @@ language=$YNH_APP_ARG_LANGUAGE
 ### The app instance name is probably what interests you most, since this is
 ### guaranteed to be unique. This is a good unique identifier to define installation path,
 ### db names, ...
-app=$YNH_APP_INSTANCE_NAME
+app="$YNH_APP_INSTANCE_NAME"
 
 #=================================================
 # CHECK IF THE APP CAN BE INSTALLED WITH THESE ARGS
@@ -47,22 +47,22 @@ final_path=/var/www/zabbix
 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)
+path_url=$(ynh_normalize_url_path "$path_url")
 
 # Check web path availability
-ynh_webpath_available $domain $path_url
+ynh_webpath_available "$domain" "$path_url"
 # Register (book) web path
-ynh_webpath_register $app $domain $path_url
+ynh_webpath_register "$app" "$domain" "$path_url"
 
 #=================================================
 # STORE SETTINGS FROM MANIFEST
 #=================================================
 
-ynh_app_setting_set $app domain $domain
-ynh_app_setting_set $app path $path_url
-ynh_app_setting_set $app admin $admin
-ynh_app_setting_set $app is_public $is_public
-ynh_app_setting_set $app language $language
+ynh_app_setting_set "$app" domain "$domain"
+ynh_app_setting_set "$app" path "$path_url"
+ynh_app_setting_set "$app" admin "$admin"
+ynh_app_setting_set "$app" is_public "$is_public"
+ynh_app_setting_set "$app" language "$language"
 
 #=================================================
 # STANDARD MODIFICATIONS
@@ -103,7 +103,7 @@ ynh_package_update
 ynh_install_app_dependencies libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap liblua5.2-0 php7.0 php-bcmath php7.0-bcmath ttf-dejavu-core php7.0-bcmath patch smistrip unzip wget fping libcap2-bin libiksemel3 libopenipmi0 libpam-cap libsnmp-base libsnmp30 snmptrapd snmpd snmp-mibs-downloader libjs-prototype zabbix-server-mysql zabbix-agent jq
 yunohost service add snmpd -d "Management of SNMP Daemon"
 DEBIAN_FRONTEND=noninteractive apt-get -y download zabbix-frontend-php
-ar x *.deb
+ar x ./*.deb
 tar xzf control.tar.gz
 sed -i 's/apache2 | httpd, //' control
 tar --ignore-failed-read -cvzf control.tar.gz {post,pre}{inst,rm} md5sums control
@@ -117,8 +117,8 @@ DEBIAN_FRONTEND=noninteractive apt-mark hold zabbix-server-mysql zabbix-frontend
 sed -i "s/# fr_FR.UTF-8 UTF-8/fr_FR.UTF-8 UTF-8/g" /etc/locale.gen
 locale-gen
 
-ln -s /usr/share/zabbix $final_path
-rm $final_path/conf/zabbix.conf.php
+ln -s /usr/share/zabbix "$final_path"
+rm "$final_path/conf/zabbix.conf.php"
 
 #=================================================
 # CREATE A MYSQL DATABASE
@@ -133,46 +133,47 @@ rm $final_path/conf/zabbix.conf.php
 ###		- Remove also the section "REMOVE THE MYSQL DATABASE" in the remove script
 ###		- As well as the section "RESTORE THE MYSQL DATABASE" in the restore script
 
-db_name=$(ynh_sanitize_dbid $app)
-db_user=$db_name
-ynh_app_setting_set $app db_name $db_name
-ynh_app_setting_set $app db_user $db_user
-ynh_mysql_setup_db $db_user $db_name
+declare db_pwd
+db_name=$(ynh_sanitize_dbid "$app")
+db_user="$db_name"
+ynh_app_setting_set "$app" db_name "$db_name"
+ynh_app_setting_set "$app" db_user "$db_user"
+ynh_mysql_setup_db "$db_user" "$db_name"
 
-zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -u$db_user -p$db_pwd $db_name
+zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -u"$db_user" -p"$db_pwd" "$db_name"
 
 #sso integration
-mysql -u$db_user -p$db_pwd $db_name -e "UPDATE \`config\` SET \`http_auth_enabled\` = '1', \`http_login_form\` = '1' WHERE \`config\`.\`configid\` = 1;"
+mysql -u"$db_user" -p"$db_pwd" "$db_name" -e "UPDATE \`config\` SET \`http_auth_enabled\` = '1', \`http_login_form\` = '1' WHERE \`config\`.\`configid\` = 1;"
 
-if [ $language == "fr" ];then
+if [ "$language" == "fr" ];then
     lang="fr_FR"
 else
     lang="en_GB"
 fi
 
 #admin creation
-surname=$(ynh_user_get_info $admin lastname)
-name=$(ynh_user_get_info $admin firstname)
+surname=$(ynh_user_get_info "$admin" lastname)
+name=$(ynh_user_get_info "$admin" firstname)
 
-mysql -u$db_user -p$db_pwd $db_name -e "INSERT INTO \`users\` (\`userid\`,\`alias\`, \`name\`, \`surname\`, \`passwd\`, \`url\`, \`autologin\`, \`autologout\`, \`lang\`, \`refresh\`, \`type\`, \`theme\`, \`attempt_failed\`, \`attempt_ip\`, \`attempt_clock\`, \`rows_per_page\`) VALUES (3,'"$admin"', '"$admin"', '"$admin"', '5fce1b3e34b520afeffb37ce08c7cd66', '', 0, '0', '"$lang"', '30s', 3, 'default', 0, '', 0, 50);"
-mysql -u$db_user -p$db_pwd $db_name -e "INSERT INTO \`users_groups\` (\`id\`, \`usrgrpid\`, \`userid\`) VALUES (5, 7, 3);"
+mysql -u"$db_user" -p"$db_pwd" "$db_name" -e "INSERT INTO \`users\` (\`userid\`,\`alias\`, \`name\`, \`surname\`, \`passwd\`, \`url\`, \`autologin\`, \`autologout\`, \`lang\`, \`refresh\`, \`type\`, \`theme\`, \`attempt_failed\`, \`attempt_ip\`, \`attempt_clock\`, \`rows_per_page\`) VALUES (3,'$admin', '$admin', '$admin', '5fce1b3e34b520afeffb37ce08c7cd66', '', 0, '0', '$lang', '30s', 3, 'default', 0, '', 0, 50);"
+mysql -u"$db_user" -p"$db_pwd" "$db_name" -e "INSERT INTO \`users_groups\` (\`id\`, \`usrgrpid\`, \`userid\`) VALUES (5, 7, 3);"
 
 #users creation in zabbix database
 i=4
-for u in $(ynh_user_list); 
+for user in $(ynh_user_list); 
 do 
-    if [ "$u" != "$admin" ];then
-        surname=$(ynh_user_get_info $u lastname)
-        name=$(ynh_user_get_info $u firstname)
-        mysql -u$db_user -p$db_pwd $db_name -e "INSERT INTO \`users\` (\`userid\`, \`alias\`, \`name\`, \`surname\`, \`passwd\`, \`url\`, \`autologin\`, \`autologout\`, \`lang\`, \`refresh\`, \`type\`, \`theme\`, \`attempt_failed\`, \`attempt_ip\`, \`attempt_clock\`, \`rows_per_page\`) VALUES ("$i",'"$u"', '"$name"', '"$surname"', '5fce1b3e34b520afeffb37ce08c7cd66', '', 0, '0', '"$lang"', '30s', 1, 'default', 0, '', 0, 50);"
-        i=$(($i+1))
+    if [ "$user" != "$admin" ];then
+        surname=$(ynh_user_get_info "$user" lastname)
+        name=$(ynh_user_get_info "$user" firstname)
+        mysql -u"$db_user" -p"$db_pwd" "$db_name" -e "INSERT INTO \`users\` (\`userid\`, \`alias\`, \`name\`, \`surname\`, \`passwd\`, \`url\`, \`autologin\`, \`autologout\`, \`lang\`, \`refresh\`, \`type\`, \`theme\`, \`attempt_failed\`, \`attempt_ip\`, \`attempt_clock\`, \`rows_per_page\`) VALUES ($i,'$user', '$name', '$surname', '5fce1b3e34b520afeffb37ce08c7cd66', '', 0, '0', '$lang', '30s', 1, 'default', 0, '', 0, 50);"
+        i=$((i+1))
     fi
 done
 
 #disable default guest 
-lastid=$(mysql -u$db_user -p$db_pwd $db_name -BN -e "SELECT max(id) from \`users_groups\`")
-lastid=$(($lastid + 1 ))
-mysql -u$db_user -p$db_pwd $db_name -e "INSERT INTO \`users_groups\` (\`id\` , \`usrgrpid\`, \`userid\`) VALUES ($lastid ,9, 2);"
+lastid=$(mysql -u"$db_user" -p"$db_pwd" "$db_name" -BN -e "SELECT max(id) from \`users_groups\`")
+lastid=$(("$lastid" + 1 ))
+mysql -u"$db_user" -p"$db_pwd" "$db_name" -e "INSERT INTO \`users_groups\` (\`id\` , \`usrgrpid\`, \`userid\`) VALUES ($lastid ,9, 2);"
 
 #=================================================
 # DOWNLOAD, CHECK AND UNPACK SOURCE
@@ -182,7 +183,7 @@ mysql -u$db_user -p$db_pwd $db_name -e "INSERT INTO \`users_groups\` (\`id\` , \
 ### downloaded from an upstream source, like a git repository.
 ### `ynh_setup_source` use the file conf/app.src
 
-ynh_app_setting_set $app final_path $final_path
+ynh_app_setting_set "$app" final_path "$final_path"
 # Download, check integrity, uncompress and patch the source from app.src
 #ynh_setup_source "$final_path"
 
@@ -273,9 +274,9 @@ systemctl reload nginx
 #ynh_local_curl "/INSTALL_PATH" "key1=value1" "key2=value2" "key3=value3"
 
 # Remove the public access
-if [ $is_public -eq 0 ]
+if [ "$is_public" -eq 0 ]
 then
-	ynh_app_setting_delete $app skipped_uris
+	ynh_app_setting_delete "$app" skipped_uris
 fi
 
 #=================================================
@@ -292,9 +293,9 @@ global \$DB;
 \$DB['TYPE']     = 'MYSQL';
 \$DB['SERVER']   = 'localhost';
 \$DB['PORT']     = '0';
-\$DB['DATABASE'] = '"$db_name"';
-\$DB['USER']     = '"$db_user"';
-\$DB['PASSWORD'] = '"$db_pwd"';
+\$DB['DATABASE'] = '$db_name';
+\$DB['USER']     = '$db_user';
+\$DB['PASSWORD'] = '$db_pwd';
 
 // Schema name. Used for IBM DB2 and PostgreSQL.
 \$DB['SCHEMA'] = '';
@@ -376,10 +377,10 @@ yunohost service add zabbix-agent -d "Management of Zabbix Agent"
 #=================================================
 
 # Make app public if necessary
-if [ $is_public -eq 1 ]
+if [ "$is_public" -eq 1 ]
 then
 	# unprotected_uris allows SSO credentials to be passed anyway.
-	ynh_app_setting_set $app unprotected_uris "/"
+	ynh_app_setting_set "$app" unprotected_uris "/"
 fi
 
 #=================================================
@@ -401,17 +402,17 @@ sudoUserPpath=$(find /var/cache/yunohost/ -name "etc_sudoers.d_zabbix")
 confUserPpath=$(find /var/cache/yunohost/ -name "etc_zabbix_zabbix_agentd.d_userP_yunohost.conf")
 bashUserPpath=$(find /var/cache/yunohost/ -name "etc_zabbix_zabbix_agentd.d_yunohost.sh")
 
-cp $sudoUserPpath /etc/sudoers.d/zabbix
-cp $confUserPpath /etc/zabbix/zabbix_agentd.d/userP_yunohost.conf
-cp $bashUserPpath /etc/zabbix/zabbix_agentd.d/yunohost.sh
+cp "$sudoUserPpath" /etc/sudoers.d/zabbix
+cp "$confUserPpath" /etc/zabbix/zabbix_agentd.d/userP_yunohost.conf
+cp "$bashUserPpath" /etc/zabbix/zabbix_agentd.d/yunohost.sh
 chmod a+x /etc/zabbix/zabbix_agentd.d/yunohost.sh
 
 systemctl restart zabbix-agent
 
 curl -k -s --cookie cookiejar.txt --cookie-jar cookiejar.txt \
-                --form enter=Sign+in \
-                --form name=Admin \
-                --form password=zabbix \
+                --form "enter=Sign+in" \
+                --form "name=Admin" \
+                --form "password=zabbix" \
                 "$zabbixFullpath/index.php"
 
 sid=$(curl -k -s --cookie cookiejar.txt --cookie-jar cookiejar.txt \
@@ -421,24 +422,24 @@ sid=$(curl -k -s --cookie cookiejar.txt --cookie-jar cookiejar.txt \
 importState=$(curl -k -s --cookie cookiejar.txt --cookie-jar cookiejar.txt \
                 --form "config=1" \
                 --form "import_file=@$localpath"  \
-                --form rules[groups][createMissing]=1 \
-                --form rules[templates][updateExisting]=1 \
-                --form rules[templates][createMissing]=1 \
-                --form rules[templateScreens][updateExisting]=1 \
-                --form rules[templateScreens][createMissing]=1 \
-                --form rules[templateLinkage][createMissing]=1 \
-                --form rules[applications][createMissing]=1 \
-                --form rules[items][updateExisting]=1 \
-                --form rules[items][createMissing]=1 \
-                --form rules[discoveryRules][updateExisting]=1 \
-                --form rules[discoveryRules][createMissing]=1 \
-                --form rules[triggers][updateExisting]=1 \
-                --form rules[triggers][createMissing]=1 \
-                --form rules[graphs][updateExisting]=1 \
-                --form rules[graphs][createMissing]=1 \
-                --form rules[httptests][updateExisting]=1 \
-                --form rules[httptests][createMissing]=1 \
-                --form rules[valueMaps][createMissing]=1 \
+                --form "rules[groups][createMissing]=1" \
+                --form "rules[templates][updateExisting]=1" \
+                --form "rules[templates][createMissing]=1" \
+                --form "rules[templateScreens][updateExisting]=1" \
+                --form "rules[templateScreens][createMissing]=1" \
+                --form "rules[templateLinkage][createMissing]=1" \
+                --form "rules[applications][createMissing]=1" \
+                --form "rules[items][updateExisting]=1" \
+                --form "rules[items][createMissing]=1" \
+                --form "rules[discoveryRules][updateExisting]=1" \
+                --form "rules[discoveryRules][createMissing]=1" \
+                --form "rules[triggers][updateExisting]=1" \
+                --form "rules[triggers][createMissing]=1" \
+                --form "rules[graphs][updateExisting]=1" \
+                --form "rules[graphs][createMissing]=1" \
+                --form "rules[httptests][updateExisting]=1" \
+                --form "rules[httptests][createMissing]=1" \
+                --form "rules[valueMaps][createMissing]=1" \
                 --form "import=Import"  \
                 --form "backurl=templates.php"  \
                 --form "form_refresh=1"  \
@@ -468,6 +469,6 @@ fi
 # disable default admin 
 #=================================================
 
-lastid=$(mysql -u$db_user -p$db_pwd $db_name -BN -e "SELECT max(id) from \`users_groups\`")
-lastid=$(($lastid + 1 ))
-mysql -u$db_user -p$db_pwd $db_name -e "INSERT INTO \`users_groups\` (\`id\` , \`usrgrpid\`, \`userid\`) VALUES ($lastid ,9, 1);"
+lastid=$(mysql -u"$db_user" -p"$db_pwd" "$db_name" -BN -e "SELECT max(id) from \`users_groups\`")
+lastid=$((lastid + 1 ))
+mysql -u"$db_user" -p"$db_pwd" "$db_name" -e "INSERT INTO \`users_groups\` (\`id\` , \`usrgrpid\`, \`userid\`) VALUES ($lastid ,9, 1);"

+ 6 - 6
scripts/remove

@@ -15,11 +15,11 @@ source /usr/share/yunohost/helpers
 
 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)
+#domain=$(ynh_app_setting_get "$app" domain) #not used
+port=$(ynh_app_setting_get "$app" port)
+db_name=$(ynh_app_setting_get "$app" db_name)
 db_user=$db_name
-final_path=$(ynh_app_setting_get $app final_path)
+#final_path=$(ynh_app_setting_get "$app" final_path) #not used
 
 #=================================================
 # STANDARD REMOVE
@@ -73,7 +73,7 @@ rm /var/www/zabbix
 #=================================================
 
 # Remove a database if it exists, along with the associated user
-ynh_mysql_remove_db $db_user $db_name
+ynh_mysql_remove_db "$db_user" "$db_name"
 
 #=================================================
 # REMOVE NGINX CONFIGURATION
@@ -102,7 +102,7 @@ ynh_remove_logrotate
 if yunohost firewall list | grep -q "\- $port$"
 then
 	echo "Close port $port" >&2
-	yunohost firewall disallow TCP $port 2>&1
+	yunohost firewall disallow TCP "$port" 2>&1
 fi
 
 #=================================================

+ 11 - 11
scripts/restore

@@ -5,7 +5,7 @@
 # IMPORT GENERIC HELPERS
 #=================================================
 
-#source _common.sh
+source _common.sh
 source /usr/share/yunohost/helpers
 
 #=================================================
@@ -40,10 +40,10 @@ rm -fr $final_path
 #=================================================
 
 domain=$(ynh_app_setting_get $app domain)
-path_url=$(ynh_app_setting_get $app path)
-admin=$(ynh_app_setting_get $app admin)
+#path_url=$(ynh_app_setting_get $app path) #not used
+#admin=$(ynh_app_setting_get $app admin) #not used
 is_public=$(ynh_app_setting_get $app is_public)
-language=$(ynh_app_setting_get $app language)
+#language=$(ynh_app_setting_get $app language) #not used
 
 #=================================================
 # INSTALL DEPENDENCIES
@@ -57,9 +57,9 @@ ynh_package_update
 ynh_install_app_dependencies libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap liblua5.2-0 php7.0 php-bcmath php7.0-bcmath ttf-dejavu-core php7.0-bcmath patch smistrip unzip wget fping libcap2-bin libiksemel3 libopenipmi0 libpam-cap libsnmp-base libsnmp30 snmptrapd snmpd snmp-mibs-downloader libjs-prototype zabbix-server-mysql zabbix-agent
 yunohost service add snmpd -d "Management of SNMP Daemon"
 DEBIAN_FRONTEND=noninteractive apt-get -y download zabbix-frontend-php
-ar x *.deb
+ar x ./*.deb
 tar xzf control.tar.gz
-sed -i 's/apache2 | httpd, //' control
+ynh_replace_string "apache2 | httpd, " "" control
 tar --ignore-failed-read -cvzf control.tar.gz {post,pre}{inst,rm} md5sums control
 ar rcs zabbix-frontend-php+stretch_all-noapache2.deb debian-binary control.tar.gz data.tar.xz
 
@@ -68,7 +68,7 @@ dpkg -i zabbix-frontend-php+stretch_all-noapache2.deb
 rm -fr zabbix-*.deb
 DEBIAN_FRONTEND=noninteractive apt-mark hold zabbix-server-mysql zabbix-frontend-php
 
-sed -i "s/# fr_FR.UTF-8 UTF-8/fr_FR.UTF-8 UTF-8/g" /etc/locale.gen
+ynh_replace_string "# fr_FR.UTF-8 UTF-8" "fr_FR.UTF-8 UTF-8" /etc/locale.gen
 locale-gen
 
 ln -s /usr/share/zabbix /var/www/zabbix
@@ -105,7 +105,7 @@ yunohost app ssowatconf
 systemctl reload nginx
 
 # Remove the public access
-if [ $is_public -eq 0 ]
+if [ "$is_public" -eq 0 ]
 then
 	ynh_app_setting_delete $app skipped_uris
 fi
@@ -118,8 +118,8 @@ db_name=$(ynh_app_setting_get $app db_name)
 db_user=$(ynh_app_setting_get $app db_user)
 db_pwd=$(ynh_app_setting_get $app mysqlpwd)
 
-ynh_mysql_setup_db $db_user $db_name $db_pwd
-ynh_mysql_connect_as $db_name $db_pwd $db_name < ./db.sql
+ynh_mysql_setup_db "$db_user" "$db_name" "$db_pwd"
+ynh_mysql_connect_as "$db_name" "$db_pwd" "$db_name" < ./db.sql
 
 #=================================================
 # Restore configs files
@@ -160,7 +160,7 @@ systemctl enable zabbix-server && systemctl start zabbix-server
 #=================================================
 
 # Make app public if necessary
-if [ $is_public -eq 1 ]
+if [ "$is_public" -eq 1 ]
 then
 	# unprotected_uris allows SSO credentials to be passed anyway.
 	ynh_app_setting_set $app unprotected_uris "/"

+ 57 - 57
scripts/upgrade

@@ -15,15 +15,15 @@ source /usr/share/yunohost/helpers
 
 app=$YNH_APP_INSTANCE_NAME
 trustedversion="1:4.0.4-1+stretch"
-domain=$(ynh_app_setting_get $app domain)
-path_url=$(ynh_app_setting_get $app path)
-admin=$(ynh_app_setting_get $app admin)
-is_public=$(ynh_app_setting_get $app is_public)
-final_path=$(ynh_app_setting_get $app final_path)
-language=$(ynh_app_setting_get $app language)
-db_name=$(ynh_app_setting_get $app db_name)
-db_user=$(ynh_app_setting_get $app db_user)
-db_pwd=$(ynh_app_setting_get $app mysqlpwd)
+domain=$(ynh_app_setting_get "$app" domain)
+path_url=$(ynh_app_setting_get "$app" path)
+#admin=$(ynh_app_setting_get "$app" admin) #not used
+is_public=$(ynh_app_setting_get "$app" is_public)
+final_path=$(ynh_app_setting_get "$app" final_path)
+#language=$(ynh_app_setting_get "$app" language) #not used
+db_name=$(ynh_app_setting_get "$app" db_name)
+db_user=$(ynh_app_setting_get "$app" db_user)
+db_pwd=$(ynh_app_setting_get "$app" mysqlpwd)
 
 
 #=================================================
@@ -32,34 +32,34 @@ db_pwd=$(ynh_app_setting_get $app mysqlpwd)
 
 # Fix is_public as a boolean value
 if [ "$is_public" = "Yes" ]; then
-	ynh_app_setting_set $app is_public 1
+	ynh_app_setting_set "$app" is_public 1
 	is_public=1
 elif [ "$is_public" = "No" ]; then
-	ynh_app_setting_set $app is_public 0
+	ynh_app_setting_set "$app" is_public 0
 	is_public=0
 fi
 
 # 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
+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
+if [ -z "$final_path" ]; then
 	final_path=/var/www/$app
-	ynh_app_setting_set $app final_path $final_path
+	ynh_app_setting_set "$app" final_path "$final_path"
 fi
 
 #=================================================
 # Enable default admin temporaly
 #=================================================
-haveDefaultAdminDisabled=$(mysql -BN -u$db_user -p$db_pwd $db_name -BN -e "SELECT count(id) from \`users_groups\` where userid=1 and usrgrpid=9")
+haveDefaultAdminDisabled=$(mysql -BN -u"$db_user" -p"$db_pwd" "$db_name" -BN -e "SELECT count(id) from \`users_groups\` where userid=1 and usrgrpid=9")
 
 if [ "$haveDefaultAdminDisabled" -eq 1 ] ;then
     ynh_print_info "Enable default admin"
     #enable default admin temporaly
-    mysql -u$db_user -p$db_pwd $db_name -e "DELETE FROM users_groups where usrgrpid=9 and userid=1;"
+    mysql -u"$db_user" -p"$db_pwd" "$db_name" -e "DELETE FROM users_groups where usrgrpid=9 and userid=1;"
 else
     ynh_print_info "default admin already enabled"
 fi
@@ -69,7 +69,7 @@ fi
 #=================================================
 ynh_print_info "Import Yunohost template"
 #disable sso temporaly
-ynh_app_setting_set $app unprotected_uris "/"
+ynh_app_setting_set "$app" unprotected_uris "/"
 systemctl reload nginx
 yunohost app ssowatconf
 
@@ -79,17 +79,17 @@ sudoUserPpath=$(find /var/cache/yunohost/ -name "etc_sudoers.d_zabbix")
 confUserPpath=$(find /var/cache/yunohost/ -name "etc_zabbix_zabbix_agentd.d_userP_yunohost.conf")
 bashUserPpath=$(find /var/cache/yunohost/ -name "etc_zabbix_zabbix_agentd.d_yunohost.sh")
 
-cp $sudoUserPpath /etc/sudoers.d/zabbix
-cp $confUserPpath /etc/zabbix/zabbix_agentd.d/userP_yunohost.conf
-cp $bashUserPpath /etc/zabbix/zabbix_agentd.d/yunohost.sh
+cp "$sudoUserPpath" /etc/sudoers.d/zabbix
+cp "$confUserPpath" /etc/zabbix/zabbix_agentd.d/userP_yunohost.conf
+cp "$bashUserPpath" /etc/zabbix/zabbix_agentd.d/yunohost.sh
 chmod a+x /etc/zabbix/zabbix_agentd.d/yunohost.sh
 
 systemctl restart zabbix-agent
 
 curl -k -s --cookie cookiejar.txt --cookie-jar cookiejar.txt \
-                --form enter=Sign+in \
-                --form name=Admin \
-                --form password=zabbix \
+                --form "enter=Sign+in" \
+                --form "name=Admin" \
+                --form "password=zabbix" \
                 "$zabbixFullpath/index.php"
 
 sid=$(curl -k -s --cookie cookiejar.txt --cookie-jar cookiejar.txt \
@@ -99,24 +99,24 @@ sid=$(curl -k -s --cookie cookiejar.txt --cookie-jar cookiejar.txt \
 importState=$(curl -k -s --cookie cookiejar.txt --cookie-jar cookiejar.txt \
                 --form "config=1" \
                 --form "import_file=@$localpath"  \
-                --form rules[groups][createMissing]=1 \
-                --form rules[templates][updateExisting]=1 \
-                --form rules[templates][createMissing]=1 \
-                --form rules[templateScreens][updateExisting]=1 \
-                --form rules[templateScreens][createMissing]=1 \
-                --form rules[templateLinkage][createMissing]=1 \
-                --form rules[applications][createMissing]=1 \
-                --form rules[items][updateExisting]=1 \
-                --form rules[items][createMissing]=1 \
-                --form rules[discoveryRules][updateExisting]=1 \
-                --form rules[discoveryRules][createMissing]=1 \
-                --form rules[triggers][updateExisting]=1 \
-                --form rules[triggers][createMissing]=1 \
-                --form rules[graphs][updateExisting]=1 \
-                --form rules[graphs][createMissing]=1 \
-                --form rules[httptests][updateExisting]=1 \
-                --form rules[httptests][createMissing]=1 \
-                --form rules[valueMaps][createMissing]=1 \
+                --form "rules[groups][createMissing]=1" \
+                --form "rules[templates][updateExisting]=1" \
+                --form "rules[templates][createMissing]=1" \
+                --form "rules[templateScreens][updateExisting]=1" \
+                --form "rules[templateScreens][createMissing]=1" \
+                --form "rules[templateLinkage][createMissing]=1" \
+                --form "rules[applications][createMissing]=1" \
+                --form "rules[items][updateExisting]=1" \
+                --form "rules[items][createMissing]=1" \
+                --form "rules[discoveryRules][updateExisting]=1" \
+                --form "rules[discoveryRules][createMissing]=1" \
+                --form "rules[triggers][updateExisting]=1" \
+                --form "rules[triggers][createMissing]=1" \
+                --form "rules[graphs][updateExisting]=1" \
+                --form "rules[graphs][createMissing]=1" \
+                --form "rules[httptests][updateExisting]=1" \
+                --form "rules[httptests][createMissing]=1" \
+                --form "rules[valueMaps][createMissing]=1" \
                 --form "import=Import"  \
                 --form "backurl=templates.php"  \
                 --form "form_refresh=1"  \
@@ -145,14 +145,14 @@ fi
 #=================================================
 # Disable default admin for security issue
 #=================================================
-haveDefaultAdminDisabled=$(mysql -BN -u$db_user -p$db_pwd $db_name -BN -e "SELECT count(id) from \`users_groups\` where userid=1 and usrgrpid=9")
+haveDefaultAdminDisabled=$(mysql -BN -u"$db_user" -p"$db_pwd" "$db_name" -BN -e "SELECT count(id) from \`users_groups\` where userid=1 and usrgrpid=9")
 
 if [ "$haveDefaultAdminDisabled" -eq 0 ] ;then
     ynh_print_info "Disable default admin"
     #disable default admin 
-    lastid=$(mysql -u$db_user -p$db_pwd $db_name -BN -e "SELECT max(id) from \`users_groups\`")
-    lastid=$(($lastid + 1 ))
-    mysql -u$db_user -p$db_pwd $db_name -e "INSERT INTO \`users_groups\` (\`id\` , \`usrgrpid\`, \`userid\`) VALUES ($lastid ,9, 1);"
+    lastid=$(mysql -u"$db_user" -p"$db_pwd" "$db_name" -BN -e "SELECT max(id) from \`users_groups\`")
+    lastid=$((lastid + 1 ))
+    mysql -u"$db_user" -p"$db_pwd" "$db_name" -e "INSERT INTO \`users_groups\` (\`id\` , \`usrgrpid\`, \`userid\`) VALUES ($lastid ,9, 1);"
 else
     ynh_print_info "default admin already disabled"
 fi
@@ -161,14 +161,14 @@ fi
 #=================================================
 # Disable default guest for security issue
 #=================================================
-haveDefaultGuestDisabled=$(mysql -BN -u$db_user -p$db_pwd $db_name -BN -e "SELECT count(id) from \`users_groups\` where userid=2 and usrgrpid=9")
+haveDefaultGuestDisabled=$(mysql -BN -u"$db_user" -p"$db_pwd" "$db_name" -BN -e "SELECT count(id) from \`users_groups\` where userid=2 and usrgrpid=9")
 
 if [ "$haveDefaultGuestDisabled" -eq 0 ] ;then
     echo "Disable default guest"
     #disable default guest 
-    lastid=$(mysql -u$db_user -p$db_pwd $db_name -BN -e "SELECT max(id) from \`users_groups\`")
-    lastid=$(($lastid + 1 ))
-    mysql -u$db_user -p$db_pwd $db_name -e "INSERT INTO \`users_groups\` (\`id\` , \`usrgrpid\`, \`userid\`) VALUES ($lastid ,9, 2);"
+    lastid=$(mysql -u"$db_user" -p"$db_pwd" "$db_name" -BN -e "SELECT max(id) from \`users_groups\`")
+    lastid=$((lastid + 1 ))
+    mysql -u"$db_user" -p"$db_pwd" "$db_name" -e "INSERT INTO \`users_groups\` (\`id\` , \`usrgrpid\`, \`userid\`) VALUES ($lastid ,9, 2);"
 else
     echo "default guest already disabled"
 fi
@@ -178,7 +178,7 @@ fi
 #=================================================
 
 # Normalize the URL path syntax
-path_url=$(ynh_normalize_url_path $path_url)
+path_url=$(ynh_normalize_url_path "$path_url")
 
 #=================================================
 # STANDARD UPGRADE STEPS
@@ -201,7 +201,7 @@ zabbixagentCandidateVersion=$(apt-cache policy zabbix-agent | grep -Po "Candidat
 if [ "$trustedversion" == "$zabbixServerCandidateVersion" ]
 then
 
-	if [ "$zabbixServerInstalledVersion" != "$zabbixServerCandidateVersion" -o "$zabbixFrontendInstalledVersion" != "$zabbixFrontendCandidateVersion" -o "$zabbixagentInstalledVersion" != "$zabbixagentCandidateVersion" ] 
+	if [ "$zabbixServerInstalledVersion" != "$zabbixServerCandidateVersion" ] || [ "$zabbixFrontendInstalledVersion" != "$zabbixFrontendCandidateVersion" ] || [ "$zabbixagentInstalledVersion" != "$zabbixagentCandidateVersion" ] 
 	then
 	    #=================================================
 	    # BACKUP BEFORE UPGRADE THEN ACTIVE TRAP
@@ -221,9 +221,9 @@ then
 	    
 	    DEBIAN_FRONTEND=noninteractive apt-mark unhold zabbix-server-mysql zabbix-frontend-php
 	    DEBIAN_FRONTEND=noninteractive apt-get -y download zabbix-frontend-php
-	    ar x *.deb
+	    ar x ./*.deb
 	    tar xzf control.tar.gz
-	    sed -i 's/apache2 | httpd, //' control
+	    ynh_replace_string "apache2 | httpd, " "" control
 	    tar --ignore-failed-read -cvzf control.tar.gz {post,pre}{inst,rm} md5sums control
 	    ar rcs zabbix-frontend-php+stretch_all-noapache2.deb debian-binary control.tar.gz data.tar.xz
 	    dpkg -i zabbix-frontend-php+stretch_all-noapache2.deb
@@ -252,9 +252,9 @@ ynh_print_info "re-enable SSOWAT"
 if [ $is_public -eq 1 ]
 then
     # unprotected_uris allows SSO credentials to be passed anyway.
-    ynh_app_setting_set $app unprotected_uris "/"
+    ynh_app_setting_set "$app" unprotected_uris "/"
 else
-    ynh_app_setting_set $app unprotected_uris ""
+    ynh_app_setting_set "$app" unprotected_uris ""
 fi
 
 systemctl reload nginx