From be5a0042234b729db003e381762df46d4ca23900 Mon Sep 17 00:00:00 2001 From: Mickael Date: Mon, 25 Feb 2019 15:26:23 +0100 Subject: [PATCH] make script compatible with shellcheck (package not tested actually) --- scripts/backup | 2 +- scripts/install | 147 ++++++++++++++++++++++++------------------------ scripts/remove | 12 ++-- scripts/restore | 22 ++++---- scripts/upgrade | 114 ++++++++++++++++++------------------- 5 files changed, 149 insertions(+), 148 deletions(-) diff --git a/scripts/backup b/scripts/backup index 300cbbb..e644781 100644 --- a/scripts/backup +++ b/scripts/backup @@ -6,7 +6,7 @@ # IMPORT GENERIC HELPERS #================================================= -source ../settings/scripts/_common.sh +source _common.sh source /usr/share/yunohost/helpers #================================================= diff --git a/scripts/install b/scripts/install index cc6ebc1..e166aef 100644 --- a/scripts/install +++ b/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);" diff --git a/scripts/remove b/scripts/remove index 83a8bcd..579bf84 100644 --- a/scripts/remove +++ b/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 #================================================= diff --git a/scripts/restore b/scripts/restore index f8514e2..88af793 100644 --- a/scripts/restore +++ b/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 "/" diff --git a/scripts/upgrade b/scripts/upgrade index bd4f7f8..0462e30 100644 --- a/scripts/upgrade +++ b/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