diff --git a/.github/scripts/install-bionic.sh b/.github/scripts/install-bionic.sh index e5eb0ed19..0078e9769 100755 --- a/.github/scripts/install-bionic.sh +++ b/.github/scripts/install-bionic.sh @@ -25,5 +25,5 @@ apt-get install -y gstreamer1.0-plugins-base \ libcairo2-dev # Making log directory for PHP tests -mkdir -p $LIBRETIME_LOG_DIR -chown runner:runner $LIBRETIME_LOG_DIR +mkdir -p "$LIBRETIME_LOG_DIR" +chown runner:runner "$LIBRETIME_LOG_DIR" diff --git a/.github/scripts/install-xenial.sh b/.github/scripts/install-xenial.sh index e5eb0ed19..0078e9769 100755 --- a/.github/scripts/install-xenial.sh +++ b/.github/scripts/install-xenial.sh @@ -25,5 +25,5 @@ apt-get install -y gstreamer1.0-plugins-base \ libcairo2-dev # Making log directory for PHP tests -mkdir -p $LIBRETIME_LOG_DIR -chown runner:runner $LIBRETIME_LOG_DIR +mkdir -p "$LIBRETIME_LOG_DIR" +chown runner:runner "$LIBRETIME_LOG_DIR" diff --git a/.github/scripts/python-pkg-install.sh b/.github/scripts/python-pkg-install.sh index 5bcade24a..e30b8ce84 100755 --- a/.github/scripts/python-pkg-install.sh +++ b/.github/scripts/python-pkg-install.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash echo "::group::Install Python apps" -for app in $(ls python_apps); do +for app in python_apps/*; do if [[ -f "python_apps/$app/requirements-dev.txt" ]]; then pip3 install -r "python_apps/$app/requirements-dev.txt" fi diff --git a/.github/scripts/python-pkg-test.sh b/.github/scripts/python-pkg-test.sh index f0add173f..96f7cf18c 100755 --- a/.github/scripts/python-pkg-test.sh +++ b/.github/scripts/python-pkg-test.sh @@ -14,7 +14,7 @@ if ! make -C python_apps/api_clients test; then fi echo "::endgroup::" -if [[ "$failed" = "true" ]]; then +if [[ $failed == "true" ]]; then echo "Python tests failed" exit 1 fi diff --git a/build.sh b/build.sh index 457d3d6ad..2fbd3fa3d 100755 --- a/build.sh +++ b/build.sh @@ -1,4 +1,7 @@ -#!/usr/bin/env bash -e +#!/usr/bin/env bash + +set -e # Exit if any of the steps fails. + composer install --no-dev --no-interaction git_build="" @@ -14,7 +17,7 @@ if [ "${git_build}" = "y" ]; then git_version=$(git rev-parse --short HEAD) echo " * Overriding empty version with sha1 commit-ish: ${git_version}" fi - echo ${git_version} > VERSION + echo "${git_version}" > VERSION else # if no file was in tarball we create one letting the user know # if you run in to this you should grab an enriched tarball built diff --git a/dev_tools/liquidsoap_compile/liquidsoap-compile.sh b/dev_tools/liquidsoap_compile/liquidsoap-compile.sh index aedef80aa..211dd7fd3 100755 --- a/dev_tools/liquidsoap_compile/liquidsoap-compile.sh +++ b/dev_tools/liquidsoap_compile/liquidsoap-compile.sh @@ -1,4 +1,7 @@ -#!/usr/bin/env bash -e +#!/usr/bin/env bash + +set -e + apt-get install -y --force-yes lsb-release sudo dist=$(lsb_release -is) code=$(lsb_release -cs) diff --git a/dev_tools/liquidsoap_compile/run.sh b/dev_tools/liquidsoap_compile/run.sh index 3a22ea54e..d5d9b944f 100755 --- a/dev_tools/liquidsoap_compile/run.sh +++ b/dev_tools/liquidsoap_compile/run.sh @@ -105,12 +105,12 @@ while getopts b:c:u: arg; do b) if [ "$OPTARG" = "all" ]; then echo "Building all platforms on server..." - for i in $(seq 0 $(($num - 1))); do + for i in $(seq 0 $((num - 1))); do build_env ${os_versions[$i]} | tee ./liquidsoap-compile_logs/build_env_${os_versions[$i]}.log done else flag=1 - for i in $(seq 0 $(($num - 1))); do + for i in $(seq 0 $((num - 1))); do if [ "$OPTARG" = ${os_versions[$i]} ]; then echo "Building platform: $OPTARG ..." build_env ${os_versions[$i]} | tee ./liquidsoap-compile_logs/build_env_${os_versions[$i]}.log @@ -129,13 +129,13 @@ while getopts b:c:u: arg; do c) if [ "$OPTARG" = "all" ]; then echo "Compiling liquidsoap for all platforms on server..." - for i in $(seq 0 $(($num - 1))); do + for i in $(seq 0 $((num - 1))); do compile_liq ${os_versions[$i]} | tee ./liquidsoap-compile_logs/compile_liq_${os_versions[$i]}.log done else flag=1 - for i in $(seq 0 $(($num - 1))); do + for i in $(seq 0 $((num - 1))); do if [ "$OPTARG" = ${os_versions[$i]} ]; then echo "Compiling liquidsoap for platform: $OPTARG ..." compile_liq ${os_versions[$i]} | tee ./liquidsoap-compile_logs/compile_liq_${os_versions[$i]}.log diff --git a/dev_tools/propel_regenerate.sh b/dev_tools/propel_regenerate.sh index 966afc08b..bd2aac7eb 100755 --- a/dev_tools/propel_regenerate.sh +++ b/dev_tools/propel_regenerate.sh @@ -1,4 +1,7 @@ -#!/usr/bin/env bash -e +#!/usr/bin/env bash + +set -e + # Absolute path to this script SCRIPT=$(readlink -f $0) # Absolute directory this script is in diff --git a/dev_tools/release/release.sh b/dev_tools/release/release.sh index 5993e0eef..c50f3fa3d 100755 --- a/dev_tools/release/release.sh +++ b/dev_tools/release/release.sh @@ -1,4 +1,6 @@ -#!/usr/bin/env bash -e +#!/usr/bin/env bash + +set -e #release.sh 1.8.2 #creates a libretime folder with a "1.8.2" suffix diff --git a/install b/install index 3f4d192a5..ca90bc661 100755 --- a/install +++ b/install @@ -1,7 +1,6 @@ -#!/usr/bin/env bash -e +#!/usr/bin/env bash -#-e Causes bash script to exit if any of the installers -#return with a non-zero return value. +set -e # Exit if any of the steps fails. if [[ $EUID -ne 0 ]]; then echo "Please run as root user." @@ -111,16 +110,16 @@ function loud() { function loudCmd() { if [[ ${_q} -eq 0 ]]; then verbose "$@" - eval $@ + eval "$@" else - eval $@ > /dev/null + eval "$@" > /dev/null fi } function checkCommandExists() { set +e - command=$@ - eval hash ${command} 2> /dev/null + command="$1" + eval hash "${command}" 2> /dev/null commandFound=$? if [[ ! ${commandFound} -eq 0 ]]; then echo -e "Error: ${command} not found. Please ensure you have the corresponding dependency installed." @@ -150,8 +149,8 @@ function systemInitDetect() { # Get package of PID=1 path as it identifies the init system. # Allow this to fail, at least then the init system can be guessed from the # PID 1 executable alone - pid_1_package=$(dpkg -S $pid_1_path 2> /dev/null || - rpm --qf '%{name}\n' -qf $pid_1_path 2> /dev/null || + pid_1_package=$(dpkg -S "$pid_1_path" 2> /dev/null || + rpm --qf '%{name}\n' -qf "$pid_1_path" 2> /dev/null || echo "unknown") verbose "Detected package name for PID=1 process: $pid_1_package" case "${pid_1_package}:${pid_1_path}" in @@ -185,6 +184,7 @@ function systemInitDetect() { function systemInitInstall() { local service_name="$1" local user="$2" + # shellcheck disable=SC2034 local source_base_path="" local source_path="" local target_path="" @@ -198,26 +198,26 @@ function systemInitInstall() { libretime-analyzer) source_path="${python_source_path}/airtime_analyzer/install/systemd/${service_name}.service" target_path="/etc/systemd/system/${service_name}.service" - alt_path=$(echo $target_path | sed 's/libretime-/airtime_/') + alt_path="${target_path//libretime-/airtime_}" ;; libretime-celery) source_path="${python_source_path}/airtime-celery/install/systemd/${service_name}.service" target_path="/etc/systemd/system/${service_name}.service" - alt_path=$(echo $target_path | sed 's/libretime-/airtime-/') + alt_path="${target_path//libretime-/airtime-}" ;; libretime-liquidsoap | libretime-playout) source_path="${python_source_path}/pypo/install/systemd/${service_name}.service" target_path="/etc/systemd/system/${service_name}.service" - alt_path=$(echo $target_path | sed 's/libretime-/airtime-/') + alt_path="${target_path//libretime-/airtime-}" ;; libretime-api) source_path="${SCRIPT_DIR-$PWD}/api/install/systemd/${service_name}.service" target_path="/etc/systemd/system/${service_name}.service" - alt_path=$(echo $target_path | sed 's/libretime-/airtime-/') + alt_path="${target_path//libretime-/airtime-}" ;; esac if [[ ! -e $source_path ]]; then - echo "$0:${FUNCNAME}(): ERROR: service \"$service_name\" with source path \"$source_path\" does not exist!" >&2 + echo "$0:${FUNCNAME[0]}(): ERROR: service \"$service_name\" with source path \"$source_path\" does not exist!" >&2 exit 1 fi # Stop and disable the service if it already exists @@ -229,7 +229,8 @@ function systemInitInstall() { local old_style_unit_exists="f" # Migrate old style airtime unit exist if it exists if [[ -e $alt_path && ! -L $alt_path ]]; then - local old_service=$(echo $service_name | sed 's/libretime/airtime/' | sed 's/-analyzer/_analyzer/') + local old_service + old_service=$(echo "$service_name" | sed 's/libretime/airtime/' | sed 's/-analyzer/_analyzer/') verbose "Old service $old_service already exists - migrating." loudCmd "systemctl disable ${old_service}.service" loudCmd "systemctl stop ${old_service}.service" @@ -241,15 +242,15 @@ function systemInitInstall() { loudCmd "cp $source_path $target_path" else sed -e "s/User=.*/User=${user}/" \ - -e "s/Group=.*/Group=${user}/" $source_path > $target_path + -e "s/Group=.*/Group=${user}/" "$source_path" > "$target_path" fi if [[ $old_style_unit_exists == "t" ]]; then verbose "Maintaining compatibility with old systemd unit names" # Alias to old Airtime names loudCmd "ln -s $source_path $alt_path" fi - chmod 0644 $target_path - chown root:root $target_path + chmod 0644 "$target_path" + chown root:root "$target_path" verbose "Service ${service_name} installed into ${target_path}" # Enable and start the service loudCmd "systemctl enable ${service_name}.service" @@ -273,7 +274,7 @@ function systemInitInstall() { ;; esac if [[ ! -e $source_path ]]; then - echo "$0:${FUNCNAME}(): ERROR: service \"$service_name\" with source path \"$source_path\" does not exist!" >&2 + echo "$0:${FUNCNAME[0]}(): ERROR: service \"$service_name\" with source path \"$source_path\" does not exist!" >&2 exit 1 fi # Stop the service if it already exists @@ -286,10 +287,10 @@ function systemInitInstall() { loudCmd "cp $source_path $target_path" else sed -e "s/WEB_USER/${user}/g" \ - -e "/^set[gu]id/{s/www-data/${user}/}" $source_path > $target_path + -e "/^set[gu]id/{s/www-data/${user}/}" "$source_path" > "$target_path" fi - chmod 0644 $target_path - chown root:root $target_path + chmod 0644 "$target_path" + chown root:root "$target_path" verbose "Service ${service_name} installed into ${target_path}" loudCmd "initctl check-config $service_name" elif $has_systemv_init; then @@ -313,7 +314,7 @@ function systemInitInstall() { ;; esac if [[ ! -e $source_path ]]; then - echo "$0:${FUNCNAME}(): ERROR: service \"$service_name\" with source path \"$source_path\" does not exist!" >&2 + echo "$0:${FUNCNAME[0]}(): ERROR: service \"$service_name\" with source path \"$source_path\" does not exist!" >&2 exit 1 fi # Stop the service if it already exists @@ -328,13 +329,13 @@ function systemInitInstall() { loudCmd "cp $source_config_path $target_config_path" else sed -e "/^USERID/{s/www-data/${user}/}" \ - -e "/^GROUPID/{s/www-data/${user}/}" $source_path > $target_path + -e "/^GROUPID/{s/www-data/${user}/}" "$source_path" > "$target_path" fi - chmod 0644 $target_path - chown root:root $target_path + chmod 0644 "$target_path" + chown root:root "$target_path" if [[ -n $target_config_path ]]; then - chmod 0644 $target_config_path - chown root:root $target_config_path + chmod 0644 "$target_config_path" + chown root:root "$target_config_path" fi verbose "Service ${service_name} installed into ${target_path}" # Create symlinks for the appropriate runlevels @@ -356,13 +357,13 @@ function systemInitCommand() { case "$command" in start | stop | status | reload | restart) if $has_systemd_init; then - loudCmd "systemctl $command $@" + loudCmd "systemctl $command $*" elif $has_upstart_init; then - for svc_name in $@; do + for svc_name in "$@"; do loudCmd "service $svc_name $command" done elif $has_systemv_init; then - for svc_name in $@; do + for svc_name in "$@"; do loudCmd "invoke-rc.d $svc_name $command" done fi @@ -371,7 +372,7 @@ function systemInitCommand() { $has_systemd_init && loudCmd "systemctl $command $1.service" if $has_systemv_init; then - if [[ "$command" = "enable" ]]; then + if [[ "$command" == "enable" ]]; then loudCmd "update-rc.d $1 defaults" else loudCmd "update-rc.d $1 enable" @@ -385,7 +386,7 @@ function systemInitCommand() { loudCmd "initctl reload-configuration" ;; *) - echo -e "$0:${FUNCNAME}(): ERROR: command \"$command\" is not supported!" >&2 + echo -e "$0:${FUNCNAME[0]}(): ERROR: command \"$command\" is not supported!" >&2 exit 1 ;; esac @@ -477,7 +478,7 @@ while :; do ;; --web-root) if [ "$2" ]; then - web_root=$(readlink -f $2) + web_root=$(readlink -f "$2") shift 2 continue else @@ -568,7 +569,7 @@ while :; do fi ;; *) - echo "$0: error - unrecognized option '${1:$i:1}'" >&2 + echo "$0: error - unrecognized option '${1:i:1}'" >&2 echo "Try 'install --help' for more information." exit 1 ;; @@ -582,7 +583,7 @@ while :; do shift done -if [ -z web_root -a ! -d web_root ]; then +if [[ -z $web_root || ! -d $web_root ]]; then echo "$web_root doesn't exist!" exit 1 fi @@ -596,6 +597,7 @@ echo -e " \/ \/ \/ \/ \/\n" echo -e "Detecting distribution and release ..." if [ -e /etc/os-release ]; then # Access $ID, $VERSION_ID and $PRETTY_NAME + # shellcheck disable=SC1091 source /etc/os-release echo "Detected distribution id: $ID" echo "Detected distribution release id: $VERSION_ID" @@ -605,7 +607,7 @@ else VERSION_ID=unknown PRETTY_NAME="Unknown distribution and release" echo "WARNING: /etc/os-release configuration not found. Unable to detect distribution." >&2 - if [ -z "$dist" -o -z "$code" ]; then + if [[ -z $dist || -z $code ]]; then echo "ERROR: One or both of --distribution and --release options were not specified." >&2 echo "This is an unsupported distribution and/or version!" >&2 exit 1 @@ -646,6 +648,7 @@ is_debian_buster=false is_ubuntu_dist=false is_ubuntu_bionic=false is_centos_dist=false +# shellcheck disable=SC2034 is_centos_7=false is_centos_8=false # Use specified distribution and release or detected otherwise. @@ -685,6 +688,7 @@ case "${dist}-${code}" in raspbian-10 | 10) code="buster" dist="debian" + # shellcheck disable=SC2034 is_debian_dist=true is_debian_buster=true ;; @@ -697,6 +701,7 @@ case "${dist}-${code}" in ;; centos-8) is_centos_dist=true + # shellcheck disable=SC2034 is_centos_8=true ;; *) @@ -926,9 +931,9 @@ fi if [ "$icecast" = "f" -a ${_i} -eq 1 ]; then echo -e "Install default Airtime Icecast configuration? (Y/n): \c" - read IN + read -r IN IN=${IN:-$default_value} - if [ "$IN" = "y" -o "$IN" = "Y" ]; then + if [[ $IN == "y" || $IN == "Y" ]]; then icecast="t" fi fi @@ -947,15 +952,15 @@ if [ "$icecast" = "t" ]; then icecast_unit_name="icecast" icecast_config="/etc/icecast.xml" fi - systemInitCommand enable ${icecast_unit_name} + systemInitCommand enable "${icecast_unit_name}" # only update icecast password if if [ ! -e "/etc/airtime/airtime.conf" ] && [ ! -e "/etc/airtime/airtime.conf.tmp" ]; then - icecast_pass=$(tr -dc _A-Z-a-z-0-9 < /dev/urandom | head -c${1:-12}) - echo $icecast_pass > /tmp/icecast_pass + icecast_pass=$(tr -dc _A-Z-a-z-0-9 < /dev/urandom | head -c"${1:-12}") + echo "$icecast_pass" > /tmp/icecast_pass loud "\n New install detected setting icecast password to random value." - xmlstarlet ed --inplace -u /icecast/authentication/source-password -v $icecast_pass $icecast_config - xmlstarlet ed --inplace -u /icecast/authentication/relay-password -v $icecast_pass $icecast_config - xmlstarlet ed --inplace -u /icecast/authentication/admin-password -v $icecast_pass $icecast_config + xmlstarlet ed --inplace -u /icecast/authentication/source-password -v "$icecast_pass" "$icecast_config" + xmlstarlet ed --inplace -u /icecast/authentication/relay-password -v "$icecast_pass" "$icecast_config" + xmlstarlet ed --inplace -u /icecast/authentication/admin-password -v "$icecast_pass" "$icecast_config" fi # restart in case icecast was already started (like is the case on debian) systemInitCommand restart ${icecast_unit_name} @@ -979,7 +984,7 @@ verbose "...Done" verbose "\n * Creating /run/airtime..." mkdir -p /run/airtime chmod 755 /run/airtime -chown -R ${web_user}:${web_user} /run/airtime +chown -R "${web_user}:${web_user}" /run/airtime verbose "...Done" if [ ! -d /var/log/airtime ]; then @@ -1003,8 +1008,8 @@ verbose "\n * Installing pypo and liquidsoap..." loudCmd "$python_bin ${AIRTIMEROOT}/python_apps/pypo/setup.py install --install-scripts=/usr/bin --no-init-script" loudCmd "mkdir -p /var/log/airtime/{pypo,pypo-liquidsoap} /var/tmp/airtime/pypo/{cache,files,tmp} /var/tmp/airtime/show-recorder/" loudCmd "chown -R ${web_user}:${web_user} /var/log/airtime/{pypo,pypo-liquidsoap} /var/tmp/airtime/pypo/{cache,files,tmp} /var/tmp/airtime/show-recorder/" -systemInitInstall libretime-liquidsoap $web_user -systemInitInstall libretime-playout $web_user +systemInitInstall libretime-liquidsoap "$web_user" +systemInitInstall libretime-playout "$web_user" verbose "...Done" verbose "\n * Installing airtime-celery..." @@ -1025,16 +1030,16 @@ verbose "...Done" verbose "\n * Installing libretime-analyzer..." loudCmd "$python_bin ${AIRTIMEROOT}/python_apps/airtime_analyzer/setup.py install --install-scripts=/usr/bin" -systemInitInstall libretime-analyzer $web_user +systemInitInstall libretime-analyzer "$web_user" verbose "...Done" verbose "\n * Installing API..." loudCmd "python3 ${AIRTIMEROOT}/api/setup.py install --install-scripts=/usr/bin" -systemInitInstall libretime-api $web_user +systemInitInstall libretime-api "$web_user" mkdir -p /etc/airtime sed -e "s@WEB_USER@${web_user}@g" \ -e "s@WEB_ROOT@${web_root}@g" \ - ${AIRTIMEROOT}/installer/uwsgi/libretime-api.ini > /etc/airtime/libretime-api.ini + "${AIRTIMEROOT}/installer/uwsgi/libretime-api.ini" > /etc/airtime/libretime-api.ini loudCmd "libretime-api collectstatic --clear --noinput" verbose "...Done" @@ -1058,7 +1063,7 @@ php_conf_dirs=( "/etc/php5/apache2/conf.d" # Debian Stretch, Debian Jessie, Ubuntu Trusty "/etc/php.d" # CentOS 7 ) -for php_conf in ${php_conf_dirs[@]}; do +for php_conf in "${php_conf_dirs[@]}"; do [[ -d $php_conf ]] && break done if [[ -d $php_conf ]]; then diff --git a/installer/lxc-bootstrap b/installer/lxc-bootstrap index 79eb227e3..6ecb1423a 100755 --- a/installer/lxc-bootstrap +++ b/installer/lxc-bootstrap @@ -1,4 +1,6 @@ -#!/usr/bin/env bash -e +#!/usr/bin/env bash + +set -e #-e Causes bash script to exit if any of the installers #return with a non-zero return value. diff --git a/jekyll.sh b/jekyll.sh old mode 100644 new mode 100755 index aa8af1ab0..48fc0cab8 --- a/jekyll.sh +++ b/jekyll.sh @@ -1,4 +1,4 @@ -#/bin/bash +#!/usr/bin/env bash echo "Installing Ruby" apt-get update -y && apt-get install -y ruby-full build-essential zlib1g-dev @@ -8,7 +8,7 @@ export PATH=".gems/bin:$PATH" echo "Installing Jekyll" -cd docs +cd docs || (echo "Could not cd in docs" && exit 1) gem install jekyll bundler # Running Jekyll diff --git a/python_apps/airtime_analyzer/tools/ftp-upload-hook.sh b/python_apps/airtime_analyzer/tools/ftp-upload-hook.sh index 01fe1b148..90cb85a1e 100755 --- a/python_apps/airtime_analyzer/tools/ftp-upload-hook.sh +++ b/python_apps/airtime_analyzer/tools/ftp-upload-hook.sh @@ -1,4 +1,6 @@ -#!/usr/bin/env bash -xv +#!/usr/bin/env bash + +set -xv post_file() { #kill process after 30 minutes (360*5=30 minutes) @@ -35,7 +37,7 @@ post_file() { # -f is needed to make curl fail if there's an HTTP error code # -L is needed to follow redirects! (just in case) until curl -fL --max-time 30 $url -u $api_key":" -X POST -F "file=@${file_path}"; do - retry_count=$(($retry_count + 1)) + retry_count=$((retry_count + 1)) if [ $retry_count -ge $max_retry ]; then break fi diff --git a/python_apps/airtime_analyzer/tools/test-hook-script.sh b/python_apps/airtime_analyzer/tools/test-hook-script.sh index fcb925a8b..001d3fea6 100755 --- a/python_apps/airtime_analyzer/tools/test-hook-script.sh +++ b/python_apps/airtime_analyzer/tools/test-hook-script.sh @@ -9,7 +9,7 @@ post_file() { retry_count=0 until curl --max-time 30 http://localhost/rest/media -u 3188BDIMPJROQP89Z0OX: -X POST -F "file=@${file_path}" -F "name=${filename}"; do - retry_count=$(($retry_count + 1)) + retry_count=$((retry_count + 1)) if [ $retry_count -ge $max_retry ]; then break fi diff --git a/uninstall b/uninstall index 4d48a89ec..1ef277f46 100755 --- a/uninstall +++ b/uninstall @@ -1,6 +1,6 @@ -#!/usr/bin/env bash -e -# -e Causes bash script to exit if any of the steps -# return with a non-zero return value. +#!/usr/bin/env bash + +set -e # Exit if any of the steps fails. if [[ $EUID -ne 0 ]]; then echo "Please run as root user." @@ -8,20 +8,13 @@ if [[ $EUID -ne 0 ]]; then fi getStorDirFromDatabase() { - echo $(sudo -u postgres psql -d airtime -tAc "SELECT directory FROM cc_music_dirs WHERE type='stor'") + sudo -u postgres psql -d airtime -tAc "SELECT directory FROM cc_music_dirs WHERE type='stor'" } dropLibreTimeDatabase() { - # here-doc to execute this block as postgres user - su postgres << 'EOF' -set +e -# DROP DATABASE cannot be executed from a function or multi-command string -psql -d postgres -tAc "DROP DATABASE IF EXISTS airtime_test" -psql -d postgres -tAc "DROP DATABASE IF EXISTS airtime" -psql -d postgres -tAc "DROP USER IF EXISTS airtime" -set -e -# don't indent this! -EOF + sudo -u postgres psql -d postgres -tAc "DROP DATABASE IF EXISTS airtime_test" + sudo -u postgres psql -d postgres -tAc "DROP DATABASE IF EXISTS airtime" + sudo -u postgres psql -d postgres -tAc "DROP USER IF EXISTS airtime" } removeRabbitmqLibreTimeSettings() { @@ -37,9 +30,6 @@ removeRabbitmqLibreTimeSettings() { rabbitmqctl delete_user ${RMQ_USER} } -SCRIPT_DIR="$( cd "$( dirname "$0")" && pwd)" -AIRTIMEROOT=${SCRIPT_DIR} - STOR_DIR=$(getStorDirFromDatabase) FILES=( @@ -57,7 +47,7 @@ FILES=( echo -e "The following files, directories, and services will be removed:\n" for i in ${FILES[*]}; do - echo $i + echo "$i" done echo "pip3 airtime-playout" @@ -65,15 +55,15 @@ echo -e "\nIf your web root is not listed, you will need to manually remove it." echo -e "\nThis will *permanently* remove LibreTime and all related files from your computer. \ Any files in LibreTime directories and subdirectories will be deleted. Are you sure you want to proceed? [y/N]: \c" -read IN -if [[ ! ("$IN" = "y" || "$IN" = "Y") ]]; then +read -r IN +if [[ ! ($IN == "y" || $IN == "Y") ]]; then exit 0 fi if [ -n "${STOR_DIR}" ]; then echo -e "\nDo you want to remove your music storage directory ${STOR_DIR} and all of its subdirectories? [y/N]: \c" - read IN - if [[ ("$IN" = "y" || "$IN" = "Y") ]]; then + read -r IN + if [[ $IN == "y" || $IN == "Y" ]]; then rm -rf "${STOR_DIR}" fi else @@ -87,12 +77,12 @@ removeRabbitmqLibreTimeSettings set -e for i in ${FILES[*]}; do - rm -rf $i + rm -rf "$i" done echo -e "\nDo you want to drop your current LibreTime database? [y/N]: \c" -read IN -if [[ "$IN" = "y" || "$IN" = "Y" ]]; then +read -r IN +if [[ $IN == "y" || $IN == "Y" ]]; then echo -e "\nDropping LibreTime database..." dropLibreTimeDatabase fi