diff --git a/global.sh b/global.sh index 13458a39..d9d7a9eb 100755 --- a/global.sh +++ b/global.sh @@ -3,12 +3,15 @@ # yml Parser function # Based on https://gist.github.com/pkuczynski/8665367 +# shellcheck disable=SC2086 parse_yaml() { - local prefix=$2 - local s='[[:space:]]*' w='[a-zA-Z0-9_]*' fs=$(echo @|tr @ '\034') + prefix=${2} + s='[[:space:]]*' w='[a-zA-Z0-9_]*' fs=$(echo @|tr @ '\034') + local prefix + local s w fs sed -ne "s|^\($s\)\($w\)$s:$s\"\(.*\)\"$s\$|\1$fs\2$fs\3|p" \ - -e "s|^\($s\)\($w\)$s:$s\(.*\)$s\$|\1$fs\2$fs\3|p" $1 | - awk -F$fs '{ + -e "s|^\($s\)\($w\)$s:$s\(.*\)$s\$|\1$fs\2$fs\3|p" "${1}" | + awk -F"${fs}" '{ indent = length($1)/2; vname[indent] = $2; for (i in vname) {if (i > indent) {delete vname[i]}} @@ -24,12 +27,12 @@ gitupdate() { echo "checking for updates using Branch: $1" git fetch git update-index -q --refresh -CHANGED=$(git diff --name-only origin/$1) -if [ ! -z "$CHANGED" ]; +CHANGED=$(git diff --name-only origin/"$1") +if [ -n "$CHANGED" ]; then echo "script requires update" git reset --hard - git checkout $1 + git checkout "${1}" git pull echo "script updated, please restart the script manually" exit 1 @@ -64,17 +67,20 @@ if [ -z "${!jailname}" ]; then exit 1 else echo "Creating jail for $1" + # shellcheck disable=SC2154 pkgs="$(sed 's/[^[:space:]]\{1,\}/"&"/g;s/ /,/g' <<<"${global_jails_pkgs} ${!jailpkgs}")" - echo '{"pkgs":['${pkgs}']}' > /tmp/pkg.json + echo '{"pkgs":['"${pkgs}"']}' > /tmp/pkg.json if [ "${setdhcp}" == "on" ] then - if ! iocage create -n "${1}" -p /tmp/pkg.json -r ${global_jails_version} interfaces="${jailinterfaces}" dhcp="on" vnet="on" allow_raw_sockets="1" boot="on" -b + # shellcheck disable=SC2154 + if ! iocage create -n "${1}" -p /tmp/pkg.json -r "${global_jails_version}" interfaces="${jailinterfaces}" dhcp="on" vnet="on" allow_raw_sockets="1" boot="on" -b then echo "Failed to create jail" exit 1 fi else - if ! iocage create -n "${1}" -p /tmp/pkg.json -r ${global_jails_version} interfaces="${jailinterfaces}" ip4_addr="vnet0|${!jailip4}" defaultrouter="${!jailgateway}" vnet="on" allow_raw_sockets="1" boot="on" -b + # shellcheck disable=SC2154 + if ! iocage create -n "${1}" -p /tmp/pkg.json -r "${global_jails_version}" interfaces="${jailinterfaces}" ip4_addr="vnet0|${!jailip4}" defaultrouter="${!jailgateway}" vnet="on" allow_raw_sockets="1" boot="on" -b then echo "Failed to create jail" exit 1 @@ -84,19 +90,19 @@ else rm /tmp/pkg.json echo "creating jail config directory" - - createmount $1 ${global_dataset_config} - createmount $1 ${global_dataset_config}/$1 /config + # shellcheck disable=SC2154 + createmount "${1}" "${global_dataset_config}" + createmount "${1}" "${global_dataset_config}"/"${1}" /config # Create and Mount portsnap echo "Mounting and fetching ports" - createmount $1 ${global_dataset_config}/portsnap - createmount $1 ${global_dataset_config}/portsnap/db /var/db/portsnap - createmount $1 ${global_dataset_config}/portsnap/ports /usr/ports + createmount "${1}" "${global_dataset_config}"/portsnap + createmount "${1}" "${global_dataset_config}"/portsnap/db /var/db/portsnap + createmount "${1}" "${global_dataset_config}"/portsnap/ports /usr/ports - iocage exec "$1" "if [ -z /usr/ports ]; then portsnap fetch extract; else portsnap auto; fi" + iocage exec "${1}" "if [ -z /usr/ports ]; then portsnap fetch extract; else portsnap auto; fi" - echo "Jail creation completed for $1" + echo "Jail creation completed for ${1}" fi } @@ -112,17 +118,17 @@ createmount() { else if [ ! -d "/mnt/$2" ]; then echo "Dataset does not exist... Creating... $2" - zfs create $2 + zfs create "${2}" else echo "Dataset already exists, skipping creation of $2" fi if [ -n "$1" ] && [ -n "$3" ]; then - iocage exec $1 mkdir -p $3 - if [ -n "$4" ]; then - iocage fstab -a $1 /mnt/$2 $3 $4 + iocage exec "${1}" mkdir -p "${3}" + if [ -n "${4}" ]; then + iocage fstab -a "${1}" /mnt/"${2}" "${3}" "${4}" else - iocage fstab -a $1 /mnt/$2 $3 nullfs rw 0 0 + iocage fstab -a "${1}" /mnt/"${2}" "${3}" nullfs rw 0 0 fi else echo "No Jail Name or Mount target specified, not mounting dataset" diff --git a/jailman.sh b/jailman.sh index 67f79d6d..49465707 100755 --- a/jailman.sh +++ b/jailman.sh @@ -1,15 +1,20 @@ #!/usr/local/bin/bash # Important defines: -export SCRIPT_NAME=$(basename $(test -L "${BASH_SOURCE[0]}" && readlink "${BASH_SOURCE[0]}" || echo "${BASH_SOURCE[0]}")); -export SCRIPT_DIR=$(cd $(dirname "${BASH_SOURCE[0]}") && pwd); +# shellcheck disable=SC2046 +SCRIPT_NAME=$(basename $(test -L "${BASH_SOURCE[0]}" && readlink "${BASH_SOURCE[0]}" || echo "${BASH_SOURCE[0]}")); +SCRIPT_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd); +export SCRIPT_NAME +export SCRIPT_DIR + echo "Working directory for jailman.sh is: ${SCRIPT_DIR}" #Includes -source ${SCRIPT_DIR}/global.sh +# shellcheck source=global.sh +source "${SCRIPT_DIR}/global.sh" # Check for root privileges -if ! [ $(id -u) = 0 ]; then +if ! [ "$(id -u)" = 0 ]; then echo "This script must be run with root privileges" exit 1 fi @@ -31,33 +36,44 @@ fi unset -v sub while getopts ":i:r:u:d:g:h" opt do + #Shellcheck on wordsplitting will be disabled. Wordsplitting can't happen, because it's already split using OPTIND. case $opt in i ) installjails=("$OPTARG") + # shellcheck disable=SC2046 until [[ $(eval "echo \${$OPTIND}") =~ ^-.* ]] || [ -z $(eval "echo \${$OPTIND}") ]; do + # shellcheck disable=SC2207 installjails+=($(eval "echo \${$OPTIND}")) OPTIND=$((OPTIND + 1)) done ;; r ) redojails=("$OPTARG") + # shellcheck disable=SC2046 until [[ $(eval "echo \${$OPTIND}") =~ ^-.* ]] || [ -z $(eval "echo \${$OPTIND}") ]; do + # shellcheck disable=SC2207 redojails+=($(eval "echo \${$OPTIND}")) OPTIND=$((OPTIND + 1)) done ;; u ) updatejails=("$OPTARG") + # shellcheck disable=SC2046 until [[ $(eval "echo \${$OPTIND}") =~ ^-.* ]] || [ -z $(eval "echo \${$OPTIND}") ]; do + # shellcheck disable=SC2207 updatejails+=($(eval "echo \${$OPTIND}")) OPTIND=$((OPTIND + 1)) done ;; d ) destroyjails=("$OPTARG") + # shellcheck disable=SC2046 until [[ $(eval "echo \${$OPTIND}") =~ ^-.* ]] || [ -z $(eval "echo \${$OPTIND}") ]; do + # shellcheck disable=SC2207 destroyjails+=($(eval "echo \${$OPTIND}")) OPTIND=$((OPTIND + 1)) done ;; g ) upgradejails=("$OPTARG") + # shellcheck disable=SC2046 until [[ $(eval "echo \${$OPTIND}") =~ ^-.* ]] || [ -z $(eval "echo \${$OPTIND}") ]; do + # shellcheck disable=SC2207 upgradejails+=($(eval "echo \${$OPTIND}")) OPTIND=$((OPTIND + 1)) done @@ -88,18 +104,20 @@ global_dataset_iocage=$(zfs get -H -o value mountpoint $(iocage get -p)/iocage) global_dataset_iocage=${global_dataset_iocage#/mnt/} # Parse the Config YAML -for configpath in ${SCRIPT_DIR}/jails/*/config.yml; do ! eval $(parse_yaml ${configpath}); done -eval $(parse_yaml config.yml) +# shellcheck disable=SC2046 +for configpath in "${SCRIPT_DIR}"/jails/*/config.yml; do ! eval $(parse_yaml "${configpath}"); done +eval "$(parse_yaml config.yml)" # Check and Execute requested jail destructions if [ ${#destroyjails[@]} -eq 0 ]; then echo "No jails to destroy" else + # shellcheck disable=SC2124,SC2145 echo "jails to destroy ${destroyjails[@]}" for jail in "${destroyjails[@]}" do echo "destroying $jail" - iocage destroy -f $jail + iocage destroy -f "${jail}" done fi @@ -108,13 +126,14 @@ fi if [ ${#installjails[@]} -eq 0 ]; then echo "No jails to install" else + # shellcheck disable=SC2124,SC2145 echo "jails to install ${installjails[@]}" for jail in "${installjails[@]}" do if [ -f "${SCRIPT_DIR}/jails/$jail/install.sh" ] then echo "Installing $jail" - jailcreate $jail && ${SCRIPT_DIR}/jails/$jail/install.sh + jailcreate "${jail}" && "${SCRIPT_DIR}"/jails/"${jail}"/install.sh else echo "Missing install script for $jail in ${SCRIPT_DIR}/jails/$jail/install.sh" fi @@ -125,13 +144,14 @@ fi if [ ${#redojails[@]} -eq 0 ]; then echo "No jails to ReInstall" else + # shellcheck disable=SC2124,SC2145 echo "jails to reinstall ${redojails[@]}" for jail in "${redojails[@]}" do if [ -f "${SCRIPT_DIR}/jails/$jail/install.sh" ] then echo "Reinstalling $jail" - iocage destroy -f $jail && jailcreate $jail && ${SCRIPT_DIR}/jails/$jail/install.sh + iocage destroy -f "${jail}" && jailcreate "${jail}" && "${SCRIPT_DIR}"/jails/"${jail}"/install.sh else echo "Missing install script for $jail in ${SCRIPT_DIR}/jails/$jail/update.sh" fi @@ -143,16 +163,17 @@ fi if [ ${#updatejails[@]} -eq 0 ]; then echo "No jails to Update" else + # shellcheck disable=SC2124,SC2145 echo "jails to update ${updatejails[@]}" for jail in "${updatejails[@]}" do if [ -f "${SCRIPT_DIR}/jails/$jail/update.sh" ] then echo "Updating $jail" - iocage update $jail - iocage exec $jail "pkg update && pkg upgrade -y" && ${SCRIPT_DIR}/jails/$jail/update.sh - iocage restart $jail - iocage start $jail + iocage update "${jail}" + iocage exec "${jail}" "pkg update && pkg upgrade -y" && "${SCRIPT_DIR}"/jails/"${jail}"/update.sh + iocage restart "${jail}" + iocage start "${jail}" else echo "Missing update script for $jail in ${SCRIPT_DIR}/jails/$jail/update.sh" fi @@ -163,6 +184,7 @@ fi if [ ${#upgradejails[@]} -eq 0 ]; then echo "No jails to Upgrade" else + # shellcheck disable=SC2124,SC2145 echo "jails to update ${upgradejails[@]}" for jail in "${upgradejails[@]}" do diff --git a/jails/bitwarden/install.sh b/jails/bitwarden/install.sh index 5a8dffa8..11d445f0 100755 --- a/jails/bitwarden/install.sh +++ b/jails/bitwarden/install.sh @@ -5,10 +5,14 @@ JAIL_NAME="bitwarden" DB_DATABASE=${JAIL_NAME} DB_USER=${JAIL_NAME} +# shellcheck disable=SC2154 INSTALL_TYPE=${bitwarden_type} -DB_HOST="$(sed 's|\(.*\)/.*|\1|' <<<"${mariadb_ip4_addr}"):3306" +# shellcheck disable=SC2154 +DB_HOST="${mariadb_ip4_addr%/*}:3306" +# shellcheck disable=SC2154 DB_PASSWORD="${bitwarden_db_password}" DB_STRING="mysql://${DB_USER}:${DB_PASSWORD}@${DB_HOST}/${DB_DATABASE}" +# shellcheck disable=SC2154 ADMIN_TOKEN=${bitwarden_admin_token} if [ -z "${ADMIN_TOKEN}" ]; then @@ -36,12 +40,13 @@ fi iocage exec ${JAIL_NAME} cp -r /usr/local/share/bitwarden/src/target/release /usr/local/share/bitwarden/bin # Download and install webvault -WEB_RELEASE_URL=$(curl -Ls -o /dev/null -w %{url_effective} https://github.com/dani-garcia/bw_web_builds/releases/latest) +WEB_RELEASE_URL=$(curl -Ls -o /dev/null -w "%{url_effective}" https://github.com/dani-garcia/bw_web_builds/releases/latest) WEB_TAG="${WEB_RELEASE_URL##*/}" iocage exec ${JAIL_NAME} "fetch http://github.com/dani-garcia/bw_web_builds/releases/download/$WEB_TAG/bw_web_$WEB_TAG.tar.gz -o /usr/local/share/bitwarden" iocage exec ${JAIL_NAME} "tar -xzvf /usr/local/share/bitwarden/bw_web_$WEB_TAG.tar.gz -C /usr/local/share/bitwarden/" -iocage exec ${JAIL_NAME} rm /usr/local/share/bitwarden/bw_web_$WEB_TAG.tar.gz +iocage exec ${JAIL_NAME} rm /usr/local/share/bitwarden/bw_web_"$WEB_TAG".tar.gz +# shellcheck disable=SC2154 if [ -f "/mnt/${global_dataset_config}/${JAIL_NAME}/ssl/bitwarden-ssl.crt" ]; then echo "certificate exist... Skipping cert generation" else @@ -50,7 +55,7 @@ else echo "cert folder not existing... creating..." iocage exec ${JAIL_NAME} mkdir /config/ssl fi - openssl req -new -newkey rsa:2048 -days 365 -nodes -x509 -subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=localhost" -keyout /mnt/${global_dataset_config}/${JAIL_NAME}/ssl/bitwarden-ssl.key -out /mnt/${global_dataset_config}/${JAIL_NAME}/ssl/bitwarden-ssl.crt + openssl req -new -newkey rsa:2048 -days 365 -nodes -x509 -subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=localhost" -keyout /mnt/"${global_dataset_config}"/${JAIL_NAME}/ssl/bitwarden-ssl.key -out /mnt/"${global_dataset_config}"/${JAIL_NAME}/ssl/bitwarden-ssl.crt fi if [ -f "/mnt/${global_dataset_config}/${JAIL_NAME}/bitwarden.log" ]; then @@ -67,10 +72,11 @@ fi iocage exec ${JAIL_NAME} "pw user add bitwarden -c bitwarden -u 725 -d /nonexistent -s /usr/bin/nologin" iocage exec ${JAIL_NAME} chown -R bitwarden:bitwarden /usr/local/share/bitwarden /config iocage exec ${JAIL_NAME} mkdir /usr/local/etc/rc.d /usr/local/etc/rc.conf.d -cp ${SCRIPT_DIR}/jails/${JAIL_NAME}/includes/bitwarden.rc /mnt/${global_dataset_iocage}/jails/${JAIL_NAME}/root/usr/local/etc/rc.d/bitwarden -cp ${SCRIPT_DIR}/jails/${JAIL_NAME}/includes/bitwarden.rc.conf /mnt/${global_dataset_iocage}/jails/${JAIL_NAME}/root/usr/local/etc/rc.conf.d/bitwarden -echo 'export DATABASE_URL="'${DB_STRING}'"' >> /mnt/${global_dataset_iocage}/jails/${JAIL_NAME}/root/usr/local/etc/rc.conf.d/bitwarden -echo 'export ADMIN_TOKEN="'${ADMIN_TOKEN}'"' >> /mnt/${global_dataset_iocage}/jails/${JAIL_NAME}/root/usr/local/etc/rc.conf.d/bitwarden +# shellcheck disable=SC2154 +cp "${SCRIPT_DIR}"/jails/${JAIL_NAME}/includes/bitwarden.rc /mnt/"${global_dataset_iocage}"/jails/${JAIL_NAME}/root/usr/local/etc/rc.d/bitwarden +cp "${SCRIPT_DIR}"/jails/${JAIL_NAME}/includes/bitwarden.rc.conf /mnt/"${global_dataset_iocage}"/jails/${JAIL_NAME}/root/usr/local/etc/rc.conf.d/bitwarden +echo 'export DATABASE_URL="'"${DB_STRING}"'"' >> /mnt/"${global_dataset_iocage}"/jails/${JAIL_NAME}/root/usr/local/etc/rc.conf.d/bitwarden +echo 'export ADMIN_TOKEN="'"${ADMIN_TOKEN}"'"' >> /mnt/"${global_dataset_iocage}"/jails/${JAIL_NAME}/root/usr/local/etc/rc.conf.d/bitwarden if [ "${ADMIN_TOKEN}" == "NONE" ]; then echo "Admin_token set to NONE, disabling admin portal" diff --git a/jails/bitwarden/update.sh b/jails/bitwarden/update.sh index 746df014..15e51002 100755 --- a/jails/bitwarden/update.sh +++ b/jails/bitwarden/update.sh @@ -7,10 +7,14 @@ JAIL_NAME="bitwarden" DB_DATABASE=${JAIL_NAME} DB_USER=${JAIL_NAME} +# shellcheck disable=SC2154 INSTALL_TYPE=${bitwarden_type} -DB_HOST="$(sed 's|\(.*\)/.*|\1|' <<<"${mariadb_ip4_addr}"):3306" +# shellcheck disable=SC2154 +DB_HOST="${mariadb_ip4_addr%/*}:3306" +# shellcheck disable=SC2154 DB_PASSWORD="${bitwarden_db_password}" DB_STRING="mysql://${DB_USER}:${DB_PASSWORD}@${DB_HOST}/${DB_DATABASE}" +# shellcheck disable=SC2154 ADMIN_TOKEN=${bitwarden_admin_token} if [ -z "${ADMIN_TOKEN}" ]; then @@ -39,17 +43,18 @@ fi iocage exec ${JAIL_NAME} cp -r /usr/local/share/bitwarden/src/target/release /usr/local/share/bitwarden/bin # Download and install webvault -WEB_RELEASE_URL=$(curl -Ls -o /dev/null -w %{url_effective} https://github.com/dani-garcia/bw_web_builds/releases/latest) +WEB_RELEASE_URL=$(curl -Ls -o /dev/null -w "%{url_effective}" https://github.com/dani-garcia/bw_web_builds/releases/latest) WEB_TAG="${WEB_RELEASE_URL##*/}" iocage exec ${JAIL_NAME} "fetch http://github.com/dani-garcia/bw_web_builds/releases/download/$WEB_TAG/bw_web_$WEB_TAG.tar.gz -o /usr/local/share/bitwarden" iocage exec ${JAIL_NAME} "tar -xzvf /usr/local/share/bitwarden/bw_web_$WEB_TAG.tar.gz -C /usr/local/share/bitwarden/" -iocage exec ${JAIL_NAME} rm /usr/local/share/bitwarden/bw_web_$WEB_TAG.tar.gz +iocage exec ${JAIL_NAME} rm /usr/local/share/bitwarden/bw_web_"$WEB_TAG".tar.gz iocage exec ${JAIL_NAME} chown -R bitwarden:bitwarden /usr/local/share/bitwarden /config -cp ${SCRIPT_DIR}/jails/${JAIL_NAME}/includes/bitwarden.rc /mnt/${global_dataset_iocage}/jails/${JAIL_NAME}/root/usr/local/etc/rc.d/bitwarden -cp ${SCRIPT_DIR}/jails/${JAIL_NAME}/includes/bitwarden.rc.conf /mnt/${global_dataset_iocage}/jails/${JAIL_NAME}/root/usr/local/etc/rc.conf.d/bitwarden -echo 'export DATABASE_URL="'${DB_STRING}'"' >> /mnt/${global_dataset_iocage}/jails/${JAIL_NAME}/root/usr/local/etc/rc.conf.d/bitwarden -echo 'export ADMIN_TOKEN="'${ADMIN_TOKEN}'"' >> /mnt/${global_dataset_iocage}/jails/${JAIL_NAME}/root/usr/local/etc/rc.conf.d/bitwarden +# shellcheck disable=SC2154 +cp "${SCRIPT_DIR}"/jails/${JAIL_NAME}/includes/bitwarden.rc /mnt/"${global_dataset_iocage}"/jails/${JAIL_NAME}/root/usr/local/etc/rc.d/bitwarden +cp "${SCRIPT_DIR}"/jails/${JAIL_NAME}/includes/bitwarden.rc.conf /mnt/"${global_dataset_iocage}"/jails/${JAIL_NAME}/root/usr/local/etc/rc.conf.d/bitwarden +echo 'export DATABASE_URL="'"${DB_STRING}"'"' >> /mnt/"${global_dataset_iocage}"/jails/${JAIL_NAME}/root/usr/local/etc/rc.conf.d/bitwarden +echo 'export ADMIN_TOKEN="'"${ADMIN_TOKEN}"'"' >> /mnt/"${global_dataset_iocage}"/jails/${JAIL_NAME}/root/usr/local/etc/rc.conf.d/bitwarden if [ "${ADMIN_TOKEN}" == "NONE" ]; then echo "Admin_token set to NONE, disabling admin portal" diff --git a/jails/influxdb/install.sh b/jails/influxdb/install.sh index a1104a97..9fe6886a 100755 --- a/jails/influxdb/install.sh +++ b/jails/influxdb/install.sh @@ -9,11 +9,14 @@ # Initialise variables JAIL_NAME="influxdb" -JAIL_IP="$(sed 's|\(.*\)/.*|\1|' <<<"${influxdb_ip4_addr}" )" +# shellcheck disable=SC2154 +JAIL_IP="${influxdb_ip4_addr%/*}" INCLUDES_PATH="${SCRIPT_DIR}/jails/influxdb/includes" -DATABASE=${influxdb_database} +# shellcheck disable=SC2154 +DATABASE="${influxdb_database}" # Mount and configure proper configuration location +# shellcheck disable=SC2154 cp -rf "${INCLUDES_PATH}/influxd.conf" "/mnt/${global_dataset_config}/${JAIL_NAME}/influxd.conf" iocage exec "${JAIL_NAME}" mkdir -p /config/db/data /config/db/meta /config/db/wal iocage exec "${JAIL_NAME}" chown -R influxd:influxd /config/db diff --git a/jails/jackett/install.sh b/jails/jackett/install.sh index 60115ab8..954d59c5 100755 --- a/jails/jackett/install.sh +++ b/jails/jackett/install.sh @@ -7,7 +7,8 @@ iocage exec jackett rm /usr/local/share/Jackett.Binaries.Mono.tar.gz iocage exec jackett "pw user add jackett -c jackett -u 818 -d /nonexistent -s /usr/bin/nologin" iocage exec jackett chown -R jackett:jackett /usr/local/share/Jackett /config iocage exec jackett mkdir /usr/local/etc/rc.d -cp ${SCRIPT_DIR}/jails/jackett/includes/jackett.rc /mnt/${global_dataset_iocage}/jails/jackett/root/usr/local/etc/rc.d/jackett +# shellcheck disable=SC2154 +cp "${SCRIPT_DIR}"/jails/jackett/includes/jackett.rc /mnt/"${global_dataset_iocage}"/jails/jackett/root/usr/local/etc/rc.d/jackett iocage exec jackett chmod u+x /usr/local/etc/rc.d/jackett iocage exec jackett sysrc "jackett_enable=YES" iocage exec jackett service jackett restart diff --git a/jails/jackett/update.sh b/jails/jackett/update.sh index df7d983e..b5ad1679 100755 --- a/jails/jackett/update.sh +++ b/jails/jackett/update.sh @@ -4,6 +4,7 @@ iocage exec jackett service jackett stop #TODO insert code to update jacket itself here iocage exec jackett chown -R jackett:jackett /usr/local/share/Jackett /config -cp ${SCRIPT_DIR}/jails/test10/includes/jackett.rc /mnt/${global_dataset_iocage}/jails/test10/root/usr/local/etc/rc.d/jackett +# shellcheck disable=SC2154 +cp "${SCRIPT_DIR}"/jails/test10/includes/jackett.rc /mnt/"${global_dataset_iocage}"/jails/test10/root/usr/local/etc/rc.d/jackett iocage exec jackett chmod u+x /usr/local/etc/rc.d/jackett iocage exec jackett service jackett restart diff --git a/jails/kms/install.sh b/jails/kms/install.sh index 6e8148c0..c7dffa88 100755 --- a/jails/kms/install.sh +++ b/jails/kms/install.sh @@ -6,7 +6,8 @@ iocage exec kms svn checkout https://github.com/SystemRage/py-kms/trunk/py-kms / iocage exec kms "pw user add kms -c kms -u 666 -d /nonexistent -s /usr/bin/nologin" iocage exec kms chown -R kms:kms /usr/local/share/py-kms /config iocage exec kms mkdir /usr/local/etc/rc.d -cp ${SCRIPT_DIR}/jails/kms/includes/py_kms.rc /mnt/${global_dataset_iocage}/jails/kms/root/usr/local/etc/rc.d/py_kms +# shellcheck disable=SC2154 +cp "${SCRIPT_DIR}"/jails/kms/includes/py_kms.rc /mnt/"${global_dataset_iocage}"/jails/kms/root/usr/local/etc/rc.d/py_kms iocage exec kms chmod u+x /usr/local/etc/rc.d/py_kms iocage exec kms sysrc "py_kms_enable=YES" iocage exec kms service py_kms start \ No newline at end of file diff --git a/jails/kms/update.sh b/jails/kms/update.sh index 0f556a5e..e953f084 100755 --- a/jails/kms/update.sh +++ b/jails/kms/update.sh @@ -4,6 +4,7 @@ iocage exec kms service py_kms stop iocage exec kms svn checkout https://github.com/SystemRage/py-kms/trunk/py-kms /usr/local/share/py-kms iocage exec kms chown -R kms:kms /usr/local/share/py-kms /config -cp ${SCRIPT_DIR}/jails/kms/includes/py_kms.rc /mnt/${global_dataset_iocage}/jails/kms/root/usr/local/etc/rc.d/py_kms +# shellcheck disable=SC2154 +cp "${SCRIPT_DIR}"/jails/kms/includes/py_kms.rc /mnt/"${global_dataset_iocage}"/jails/kms/root/usr/local/etc/rc.d/py_kms iocage exec kms chmod u+x /usr/local/etc/rc.d/py_kms iocage exec kms service py_kms start \ No newline at end of file diff --git a/jails/lidarr/install.sh b/jails/lidarr/install.sh index f9308024..702d3603 100755 --- a/jails/lidarr/install.sh +++ b/jails/lidarr/install.sh @@ -2,12 +2,14 @@ # This file contains the install script for lidarr # Check if dataset for completed download and it parent dataset exist, create if they do not. -createmount lidarr ${global_dataset_downloads} -createmount lidarr ${global_dataset_downloads}/complete /mnt/fetched +# shellcheck disable=SC2154 +createmount lidarr "${global_dataset_downloads}" +createmount lidarr "${global_dataset_downloads}"/complete /mnt/fetched # Check if dataset for media library and the dataset for movies exist, create if they do not. -createmount lidarr ${global_dataset_media} -createmount lidarr ${global_dataset_media}/music /mnt/music +# shellcheck disable=SC2154 +createmount lidarr "${global_dataset_media}" +createmount lidarr "${global_dataset_media}"/music /mnt/music iocage exec lidarr "fetch https://github.com/lidarr/Lidarr/releases/download/v0.2.0.371/Lidarr.develop.0.2.0.371.linux.tar.gz -o /usr/local/share" @@ -16,7 +18,8 @@ iocage exec lidarr "rm /usr/local/share/Lidarr.develop.0.2.0.371.linux.tar.gz" iocage exec lidarr "pw user add lidarr -c lidarr -u 353 -d /nonexistent -s /usr/bin/nologin" iocage exec lidarr chown -R lidarr:lidarr /usr/local/share/Lidarr /config iocage exec lidarr mkdir /usr/local/etc/rc.d -cp ${SCRIPT_DIR}/jails/lidarr/includes/lidarr.rc /mnt/${global_dataset_iocage}/jails/lidarr/root/usr/local/etc/rc.d/lidarr +# shellcheck disable=SC2154 +cp "${SCRIPT_DIR}"/jails/lidarr/includes/lidarr.rc /mnt/"${global_dataset_iocage}"/jails/lidarr/root/usr/local/etc/rc.d/lidarr iocage exec lidarr chmod u+x /usr/local/etc/rc.d/lidarr iocage exec lidarr sysrc "lidarr_enable=YES" iocage exec lidarr service lidarr start diff --git a/jails/lidarr/update.sh b/jails/lidarr/update.sh index f85fefbe..a1990a7a 100755 --- a/jails/lidarr/update.sh +++ b/jails/lidarr/update.sh @@ -4,6 +4,7 @@ iocage exec lidarr service lidarr stop #TODO insert code to update lidarr itself here iocage exec lidarr chown -R lidarr:lidarr /usr/local/share/lidarr /config -cp ${SCRIPT_DIR}/jails/lidarr/includes/lidarr.rc /mnt/${global_dataset_iocage}/jails/lidarr/root/usr/local/etc/rc.d/lidarr +# shellcheck disable=SC2154 +cp "${SCRIPT_DIR}"/jails/lidarr/includes/lidarr.rc /mnt/"${global_dataset_iocage}"/jails/lidarr/root/usr/local/etc/rc.d/lidarr iocage exec lidarr chmod u+x /usr/local/etc/rc.d/lidarr iocage exec lidarr service lidarr restart \ No newline at end of file diff --git a/jails/mariadb/includes/caddy b/jails/mariadb/includes/caddy index 9c087c47..5f8df19d 100755 --- a/jails/mariadb/includes/caddy +++ b/jails/mariadb/includes/caddy @@ -1,4 +1,5 @@ #!/bin/sh +# shellcheck disable=1091,2223,2154,2034 # # PROVIDE: caddy # REQUIRE: networking diff --git a/jails/mariadb/install.sh b/jails/mariadb/install.sh index 6c9d9e7d..9bf39b4e 100755 --- a/jails/mariadb/install.sh +++ b/jails/mariadb/install.sh @@ -8,9 +8,12 @@ # Initialise defaults JAIL_NAME="mariadb" -JAIL_IP="$(sed 's|\(.*\)/.*|\1|' <<<"${mariadb_ip4_addr}" )" +# shellcheck disable=SC2154 +JAIL_IP="${mariadb_ip4_addr%/*}" INCLUDES_PATH="${SCRIPT_DIR}/jails/mariadb/includes" +# shellcheck disable=SC2154 CERT_EMAIL=${mariadb_cert_email} +# shellcheck disable=SC2154 DB_ROOT_PASSWORD=${mariadb_db_root_password} DB_NAME="MariaDB" DL_FLAGS="" @@ -23,16 +26,16 @@ if [ -z "${mariadb_ip4_addr}" ]; then fi # Make sure DB_PATH is empty -- if not, MariaDB/PostgreSQL will choke - +# shellcheck disable=SC2154 if [ "$(ls -A "/mnt/${global_dataset_config}/${JAIL_NAME}/db")" ]; then echo "Reinstall of mariadb detected... Continuing" REINSTALL="true" fi # Mount database dataset and set zfs preferences -createmount ${JAIL_NAME} ${global_dataset_config}/${JAIL_NAME}/db /var/db/mysql -zfs set recordsize=16K ${global_dataset_config}/${JAIL_NAME}/db -zfs set primarycache=metadata ${global_dataset_config}/${JAIL_NAME}/db +createmount ${JAIL_NAME} "${global_dataset_config}"/${JAIL_NAME}/db /var/db/mysql +zfs set recordsize=16K "${global_dataset_config}"/${JAIL_NAME}/db +zfs set primarycache=metadata "${global_dataset_config}"/${JAIL_NAME}/db iocage exec "${JAIL_NAME}" chown -R 88:88 /var/db/mysql @@ -62,6 +65,7 @@ iocage exec "${JAIL_NAME}" sysrc mysql_enable="YES" echo "Copying Caddyfile for no SSL" iocage exec "${JAIL_NAME}" cp -f /mnt/includes/caddy /usr/local/etc/rc.d/ iocage exec "${JAIL_NAME}" cp -f /mnt/includes/Caddyfile /usr/local/www/Caddyfile +# shellcheck disable=SC2154 iocage exec "${JAIL_NAME}" sed -i '' "s/yourhostnamehere/${mariadb_host_name}/" /usr/local/www/Caddyfile iocage exec "${JAIL_NAME}" sed -i '' "s/JAIL-IP/${JAIL_IP}/" /usr/local/www/Caddyfile diff --git a/jails/mariadb/update.sh b/jails/mariadb/update.sh index 2cb9fe25..c3d8ad2f 100755 --- a/jails/mariadb/update.sh +++ b/jails/mariadb/update.sh @@ -2,7 +2,8 @@ # This file contains the update script for mariadb JAIL_NAME="mariadb" -JAIL_IP="$(sed 's|\(.*\)/.*|\1|' <<<"${mariadb_ip4_addr}" )" +# shellcheck disable=SC2154 +JAIL_IP="${mariadb_ip4_addr%/*}" INCLUDES_PATH="${SCRIPT_DIR}/jails/mariadb/includes" # Install includes fstab @@ -24,6 +25,7 @@ fi echo "Copying Caddyfile for no SSL" iocage exec "${JAIL_NAME}" cp -f /mnt/includes/caddy /usr/local/etc/rc.d/ iocage exec "${JAIL_NAME}" cp -f /mnt/includes/Caddyfile /usr/local/www/Caddyfile +# shellcheck disable=SC2154 iocage exec "${JAIL_NAME}" sed -i '' "s/yourhostnamehere/${mariadb_host_name}/" /usr/local/www/Caddyfile iocage exec "${JAIL_NAME}" sed -i '' "s/JAIL-IP/${JAIL_IP}/" /usr/local/www/Caddyfile diff --git a/jails/nextcloud/includes/caddy b/jails/nextcloud/includes/caddy index f7a9b1e4..d6e9ad35 100755 --- a/jails/nextcloud/includes/caddy +++ b/jails/nextcloud/includes/caddy @@ -1,4 +1,5 @@ #!/bin/sh +# shellcheck disable=1091,2223,2154,2034 # # PROVIDE: caddy # REQUIRE: networking diff --git a/jails/nextcloud/install.sh b/jails/nextcloud/install.sh index 2b3168a6..a519faea 100755 --- a/jails/nextcloud/install.sh +++ b/jails/nextcloud/install.sh @@ -5,16 +5,26 @@ # Initialise defaults JAIL_NAME="nextcloud" -JAIL_IP="$(sed 's|\(.*\)/.*|\1|' <<<"${nextcloud_ip4_addr}" )" +# shellcheck disable=SC2154 +JAIL_IP="${nextcloud_ip4_addr%/*}" +# shellcheck disable=SC2154 DATABASE="$nextcloud_database" INCLUDES_PATH="${SCRIPT_DIR}/jails/nextcloud/includes" +# shellcheck disable=SC2154 STANDALONE_CERT=${nextcloud_standalone_cert} +# shellcheck disable=SC2154 SELFSIGNED_CERT=${nextcloud_selfsigned_cert} +# shellcheck disable=SC2154 DNS_CERT=${nextcloud_dns_cert} +# shellcheck disable=SC2154 NO_CERT=${nextcloud_no_cert} +# shellcheck disable=SC2154 DL_FLAGS=${nextcloud_dl_flags} +# shellcheck disable=SC2154 DNS_SETTING=${nextcloud_dns_settings} +# shellcheck disable=SC2154 CERT_EMAIL=${nextcloud_cert_email} +# shellcheck disable=SC2154 HOST_NAME=${nextcloud_host_name} # Only generate new DB passwords when using buildin database @@ -22,9 +32,13 @@ HOST_NAME=${nextcloud_host_name} if [ "${DATABASE}" = "pgsql-external" ]; then DB_NAME="PostgreSQL" + # shellcheck disable=SC2154 DB_HOST="${nextcloud_db_host}" + # shellcheck disable=SC2154 DB_DATABASE="${nextcloud_db_database}" + # shellcheck disable=SC2154 DB_USER="${nextcloud_db_user}" + # shellcheck disable=SC2154 DB_PASSWORD="${nextcloud_db_password}" elif [ "${DATABASE}" = "mariadb-external" ]; then DB_NAME="MariaDB" @@ -35,7 +49,8 @@ elif [ "${DATABASE}" = "mariadb-external" ]; then elif [ "${DATABASE}" = "mariadb-jail" ]; then DB_DATABASE="nextcloud" DB_USER="nextcloud" - DB_HOST="$(sed 's|\(.*\)/.*|\1|' <<<"${mariadb_ip4_addr}"):3306" + # shellcheck disable=SC2154 + DB_HOST="${mariadb_ip4_addr%/*}:3306" DB_PASSWORD="${nextcloud_db_password}" else echo "Invalid ${JAIL_NAME}_database selected please select one from the following options:" @@ -84,6 +99,7 @@ if [ -z "${DB_DATABASE}" ]; then exit 1 fi +# shellcheck disable=SC2154 if [ -z "${nextcloud_time_zone}" ]; then echo 'Configuration error: TIME_ZONE must be set' exit 1 @@ -92,35 +108,36 @@ if [ -z "${HOST_NAME}" ]; then echo 'Configuration error: HOST_NAME must be set' exit 1 fi -if [ $STANDALONE_CERT -eq 0 ] && [ $DNS_CERT -eq 0 ] && [ $NO_CERT -eq 0 ] && [ $SELFSIGNED_CERT -eq 0 ]; then +if [ "$STANDALONE_CERT" -eq 0 ] && [ "$DNS_CERT" -eq 0 ] && [ "$NO_CERT" -eq 0 ] && [ "$SELFSIGNED_CERT" -eq 0 ]; then echo 'Configuration error: Either STANDALONE_CERT, DNS_CERT, NO_CERT,' echo 'or SELFSIGNED_CERT must be set to 1.' exit 1 fi -if [ $STANDALONE_CERT -eq 1 ] && [ $DNS_CERT -eq 1 ] ; then +if [ "$STANDALONE_CERT" -eq 1 ] && [ "$DNS_CERT" -eq 1 ] ; then echo 'Configuration error: Only one of STANDALONE_CERT and DNS_CERT' echo 'may be set to 1.' exit 1 fi -if [ $DNS_CERT -eq 1 ] && [ -z "${DNS_PLUGIN}" ] ; then +if [ "$DNS_CERT" -eq 1 ] && [ -z "${DNS_PLUGIN}" ] ; then echo "DNS_PLUGIN must be set to a supported DNS provider." echo "See https://caddyserver.com/docs under the heading of \"DNS Providers\" for list." echo "Be sure to omit the prefix of \"tls.dns.\"." exit 1 fi -if [ $DNS_CERT -eq 1 ] && [ -z "${DNS_ENV}" ] ; then +if [ "$DNS_CERT" -eq 1 ] && [ -z "${DNS_ENV}" ] ; then echo "DNS_ENV must be set to a your DNS provider\'s authentication credentials." echo "See https://caddyserver.com/docs under the heading of \"DNS Providers\" for more." exit 1 fi -if [ $DNS_CERT -eq 1 ] ; then +if [ "$DNS_CERT" -eq 1 ] ; then DL_FLAGS="tls.dns.${DNS_PLUGIN}" DNS_SETTING="dns ${DNS_PLUGIN}" fi # Make sure DB_PATH is empty -- if not, MariaDB/PostgreSQL will choke +# shellcheck disable=SC2154 if [ "$(ls -A "/mnt/${global_dataset_config}/${JAIL_NAME}/config")" ]; then echo "Reinstall of Nextcloud detected... " echo "External database selected, unable to verify compatibility. REINSTALL MIGHT NOT WORK... Continuing" @@ -135,9 +152,9 @@ fi ##### # Create and Mount Nextcloud, Config and Files -createmount ${JAIL_NAME} ${global_dataset_config}/${JAIL_NAME}/config /usr/local/www/nextcloud/config -createmount ${JAIL_NAME} ${global_dataset_config}/${JAIL_NAME}/themes /usr/local/www/nextcloud/themes -createmount ${JAIL_NAME} ${global_dataset_config}/${JAIL_NAME}/files /config/files +createmount ${JAIL_NAME} "${global_dataset_config}"/${JAIL_NAME}/config /usr/local/www/nextcloud/config +createmount ${JAIL_NAME} "${global_dataset_config}"/${JAIL_NAME}/themes /usr/local/www/nextcloud/themes +createmount ${JAIL_NAME} "${global_dataset_config}"/${JAIL_NAME}/files /config/files # Install includes fstab iocage exec "${JAIL_NAME}" mkdir -p /mnt/includes @@ -197,7 +214,7 @@ iocage exec "${JAIL_NAME}" chown -R www:www /usr/local/www/nextcloud/ # Generate and install self-signed cert, if necessary -if [ $SELFSIGNED_CERT -eq 1 ] && [ ! -f "/mnt/${global_dataset_config}/${JAIL_NAME}/ssl/privkey.pem" ]; then +if [ "$SELFSIGNED_CERT" -eq 1 ] && [ ! -f "/mnt/${global_dataset_config}/${JAIL_NAME}/ssl/privkey.pem" ]; then echo "No ssl certificate present, generating self signed certificate" if [ ! -d "/mnt/${global_dataset_config}/${JAIL_NAME}/ssl" ]; then echo "cert folder not existing... creating..." @@ -212,13 +229,13 @@ fi iocage exec "${JAIL_NAME}" cp -f /mnt/includes/php.ini /usr/local/etc/php.ini iocage exec "${JAIL_NAME}" cp -f /mnt/includes/redis.conf /usr/local/etc/redis.conf iocage exec "${JAIL_NAME}" cp -f /mnt/includes/www.conf /usr/local/etc/php-fpm.d/ -if [ $STANDALONE_CERT -eq 1 ] || [ $DNS_CERT -eq 1 ]; then +if [ "$STANDALONE_CERT" -eq 1 ] || [ "$DNS_CERT" -eq 1 ]; then iocage exec "${JAIL_NAME}" cp -f /mnt/includes/remove-staging.sh /root/ fi -if [ $NO_CERT -eq 1 ]; then +if [ "$NO_CERT" -eq 1 ]; then echo "Copying Caddyfile for no SSL" iocage exec "${JAIL_NAME}" cp -f /mnt/includes/Caddyfile-nossl /usr/local/www/Caddyfile -elif [ $SELFSIGNED_CERT -eq 1 ]; then +elif [ "$SELFSIGNED_CERT" -eq 1 ]; then echo "Copying Caddyfile for self-signed cert" iocage exec "${JAIL_NAME}" cp -f /mnt/includes/Caddyfile-selfsigned /usr/local/www/Caddyfile else @@ -277,7 +294,7 @@ else iocage exec "${JAIL_NAME}" su -m www -c 'php /usr/local/www/nextcloud/occ config:system:set memcache.locking --value="\OC\Memcache\Redis"' iocage exec "${JAIL_NAME}" su -m www -c "php /usr/local/www/nextcloud/occ config:system:set overwritehost --value=\"${HOST_NAME}\"" iocage exec "${JAIL_NAME}" su -m www -c "php /usr/local/www/nextcloud/occ config:system:set overwriteprotocol --value=\"https\"" - if [ $NO_CERT -eq 1 ]; then + if [ "$NO_CERT" -eq 1 ]; then iocage exec "${JAIL_NAME}" su -m www -c "php /usr/local/www/nextcloud/occ config:system:set overwrite.cli.url --value=\"http://${HOST_NAME}/\"" else iocage exec "${JAIL_NAME}" su -m www -c "php /usr/local/www/nextcloud/occ config:system:set overwrite.cli.url --value=\"https://${HOST_NAME}/\"" @@ -303,7 +320,7 @@ iocage fstab -r "${JAIL_NAME}" "${INCLUDES_PATH}" /mnt/includes nullfs rw 0 0 # Done! echo "Installation complete!" -if [ $NO_CERT -eq 1 ]; then +if [ "$NO_CERT" -eq 1 ]; then echo "Using your web browser, go to http://${HOST_NAME} to log in" else echo "Using your web browser, go to https://${HOST_NAME} to log in" @@ -325,14 +342,14 @@ else fi echo "" -if [ $STANDALONE_CERT -eq 1 ] || [ $DNS_CERT -eq 1 ]; then +if [ "$STANDALONE_CERT" -eq 1 ] || [ "$DNS_CERT" -eq 1 ]; then echo "You have obtained your Let's Encrypt certificate using the staging server." echo "This certificate will not be trusted by your browser and will cause SSL errors" echo "when you connect. Once you've verified that everything else is working" echo "correctly, you should issue a trusted certificate. To do this, run:" echo " iocage exec ${JAIL_NAME} /root/remove-staging.sh" echo "" -elif [ $SELFSIGNED_CERT -eq 1 ]; then +elif [ "$SELFSIGNED_CERT" -eq 1 ]; then echo "You have chosen to create a self-signed TLS certificate for your Nextcloud" echo "installation. This certificate will not be trusted by your browser and" echo "will cause SSL errors when you connect. If you wish to replace this certificate" diff --git a/jails/organizr/install.sh b/jails/organizr/install.sh index 4f5e55ed..951ff0d8 100755 --- a/jails/organizr/install.sh +++ b/jails/organizr/install.sh @@ -8,10 +8,11 @@ iocage exec organizr sed -i '' -e 's/;listen.mode = 0660/listen.mode = 0600/g' / iocage exec organizr cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini iocage exec organizr sed -i '' -e 's?;date.timezone =?date.timezone = "Universal"?g' /usr/local/etc/php.ini iocage exec organizr sed -i '' -e 's?;cgi.fix_pathinfo=1?cgi.fix_pathinfo=0?g' /usr/local/etc/php.ini -mv /mnt/${global_dataset_iocage}/jails/organizr/root/usr/local/etc/nginx/nginx.conf /mnt/${global_dataset_iocage}/jails/organizr/root/usr/local/etc/nginx/nginx.conf.bak -cp ${SCRIPT_DIR}/jails/organizr/includes/nginx.conf /mnt/${global_dataset_iocage}/jails/organizr/root/usr/local/etc/nginx/nginx.conf -cp -Rf ${SCRIPT_DIR}/jails/organizr/includes/custom /mnt/${global_dataset_iocage}/jails/organizr/root/usr/local/etc/nginx/custom - +# shellcheck disable=SC2154 +mv /mnt/"${global_dataset_iocage}"/jails/organizr/root/usr/local/etc/nginx/nginx.conf /mnt/"${global_dataset_iocage}"/jails/organizr/root/usr/local/etc/nginx/nginx.conf.bak +cp "${SCRIPT_DIR}"/jails/organizr/includes/nginx.conf /mnt/"${global_dataset_iocage}"/jails/organizr/root/usr/local/etc/nginx/nginx.conf +cp -Rf "${SCRIPT_DIR}"/jails/organizr/includes/custom /mnt/"${global_dataset_iocage}"/jails/organizr/root/usr/local/etc/nginx/custom +# shellcheck disable=SC2154 if [ ! -d "/mnt/${global_dataset_config}/organizr/ssl" ]; then echo "cert folder doesn't exist... creating..." iocage exec organizr mkdir /config/ssl @@ -21,7 +22,7 @@ if [ -f "/mnt/${global_dataset_config}/organizr/ssl/Organizr-Cert.crt" ]; then echo "certificate exists... Skipping cert generation" else echo "No ssl certificate present, generating self signed certificate" - openssl req -new -newkey rsa:2048 -days 365 -nodes -x509 -subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=localhost" -keyout /mnt/${global_dataset_config}/organizr/ssl/Organizr-Cert.key -out /mnt/${global_dataset_config}/organizr/ssl/Organizr-Cert.crt + openssl req -new -newkey rsa:2048 -days 365 -nodes -x509 -subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=localhost" -keyout /mnt/"${global_dataset_config}"/organizr/ssl/Organizr-Cert.key -out /mnt/"${global_dataset_config}"/organizr/ssl/Organizr-Cert.crt fi iocage exec organizr git clone https://github.com/causefx/Organizr.git /usr/local/www/Organizr diff --git a/jails/organizr/update.sh b/jails/organizr/update.sh index 173c47e9..b24f1154 100755 --- a/jails/organizr/update.sh +++ b/jails/organizr/update.sh @@ -1,11 +1,11 @@ #!/usr/local/bin/bash # This file contains the update script for Organizr - iocage exec organizr service nginx stop iocage exec organizr service php-fpm stop # TODO setup cli update for Organizr here. -cp ${SCRIPT_DIR}/jails/organizr/includes/nginx.conf /mnt/${global_dataset_iocage}/jails/organizr/root/usr/local/etc/nginx/nginx.conf +# shellcheck disable=SC2154 +cp "${SCRIPT_DIR}"/jails/organizr/includes/nginx.conf /mnt/"${global_dataset_iocage}"/jails/organizr/root/usr/local/etc/nginx/nginx.conf iocage exec organizr "cd /usr/local/www/Organizr && git pull" iocage exec organizr chown -R www:www /usr/local/www /config /usr/local/etc/nginx/nginx.conf /usr/local/etc/nginx/custom iocage exec organizr service nginx start diff --git a/jails/plex/install.sh b/jails/plex/install.sh index 460784bf..cdeb3803 100755 --- a/jails/plex/install.sh +++ b/jails/plex/install.sh @@ -5,20 +5,23 @@ iocage exec plex mkdir -p /usr/local/etc/pkg/repos # Change to to more frequent FreeBSD repo to stay up-to-date with plex more. -cp ${SCRIPT_DIR}/jails/plex/includes/FreeBSD.conf /mnt/${global_dataset_iocage}/jails/plex/root/usr/local/etc/pkg/repos/FreeBSD.conf +# shellcheck disable=SC2154 +cp "${SCRIPT_DIR}"/jails/plex/includes/FreeBSD.conf /mnt/"${global_dataset_iocage}"/jails/plex/root/usr/local/etc/pkg/repos/FreeBSD.conf # Check if datasets for media librarys exist, create them if they do not. -createmount plex ${global_dataset_media} /mnt/media -createmount plex ${global_dataset_media}/movies /mnt/media/movies -createmount plex ${global_dataset_media}/music /mnt/media/music -createmount plex ${global_dataset_media}/shows /mnt/media/shows +# shellcheck disable=SC2154 +createmount plex "${global_dataset_media}" /mnt/media +createmount plex "${global_dataset_media}"/movies /mnt/media/movies +createmount plex "${global_dataset_media}"/music /mnt/media/music +createmount plex "${global_dataset_media}"/shows /mnt/media/shows # Create plex ramdisk if specified +# shellcheck disable=SC2154 if [ -z "${plex_ramdisk}" ]; then echo "no ramdisk specified for plex, continuing without randisk" else - iocage fstab -a plex tmpfs /tmp_transcode tmpfs rw,size=${plex_ramdisk},mode=1777 0 0 + iocage fstab -a plex tmpfs /tmp_transcode tmpfs rw,size="${plex_ramdisk}",mode=1777 0 0 fi iocage exec plex chown -R plex:plex /config @@ -31,6 +34,7 @@ iocage exec plex pkg upgrade -y iocage exec plex pw groupmod -n video -m plex # Run different install procedures depending on Plex vs Plex Beta +# shellcheck disable=SC2154 if [ "$plex_beta" == "true" ]; then echo "beta enabled in config.yml... using plex beta for install" iocage exec plex sysrc "plexmediaserver_plexpass_enable=YES" diff --git a/jails/plex/update.sh b/jails/plex/update.sh index a9f7b7d4..ca01432a 100755 --- a/jails/plex/update.sh +++ b/jails/plex/update.sh @@ -2,6 +2,7 @@ # This file contains the update script for Plex # Run different update procedures depending on Plex vs Plex Beta +# shellcheck disable=SC2154 if [ "$plex_plexpass" == "true" ]; then echo "beta enabled in config.yml... using plex beta for update..." iocage exec plex service plexmediaserver_plexpass stop diff --git a/jails/radarr/install.sh b/jails/radarr/install.sh index 06e6e1f0..d8305480 100755 --- a/jails/radarr/install.sh +++ b/jails/radarr/install.sh @@ -2,12 +2,14 @@ # This file contains the install script for radarr # Check if dataset for completed download and it parent dataset exist, create if they do not. -createmount radarr ${global_dataset_downloads} -createmount radarr ${global_dataset_downloads}/complete /mnt/fetched +# shellcheck disable=SC2154 +createmount radarr "${global_dataset_downloads}" +createmount radarr "${global_dataset_downloads}"/complete /mnt/fetched # Check if dataset for media library and the dataset for movies exist, create if they do not. -createmount radarr ${global_dataset_media} -createmount radarr ${global_dataset_media}/movies /mnt/movies +# shellcheck disable=SC2154 +createmount radarr "${global_dataset_media}" +createmount radarr "${global_dataset_media}"/movies /mnt/movies iocage exec radarr "fetch https://github.com/Radarr/Radarr/releases/download/v0.2.0.1480/Radarr.develop.0.2.0.1480.linux.tar.gz -o /usr/local/share" iocage exec radarr "tar -xzvf /usr/local/share/Radarr.develop.0.2.0.1480.linux.tar.gz -C /usr/local/share" @@ -15,7 +17,8 @@ iocage exec radarr rm /usr/local/share/Radarr.develop.0.2.0.1480.linux.tar.gz iocage exec radarr "pw user add radarr -c radarr -u 352 -d /nonexistent -s /usr/bin/nologin" iocage exec radarr chown -R radarr:radarr /usr/local/share/Radarr /config iocage exec radarr mkdir /usr/local/etc/rc.d -cp ${SCRIPT_DIR}/jails/radarr/includes/radarr.rc /mnt/${global_dataset_iocage}/jails/radarr/root/usr/local/etc/rc.d/radarr +# shellcheck disable=SC2154 +cp "${SCRIPT_DIR}"/jails/radarr/includes/radarr.rc /mnt/"${global_dataset_iocage}"/jails/radarr/root/usr/local/etc/rc.d/radarr iocage exec radarr chmod u+x /usr/local/etc/rc.d/radarr iocage exec radarr sysrc "radarr_enable=YES" iocage exec radarr service radarr restart diff --git a/jails/radarr/update.sh b/jails/radarr/update.sh index 9b3afca0..b527d0ce 100755 --- a/jails/radarr/update.sh +++ b/jails/radarr/update.sh @@ -4,6 +4,7 @@ iocage exec radarr service radarr stop #TODO insert code to update radarr itself here iocage exec radarr chown -R radarr:radarr /usr/local/share/Radarr /config -cp ${SCRIPT_DIR}/jails/radarr/includes/radarr.rc /mnt/${global_dataset_iocage}/jails/radarr/root/usr/local/etc/rc.d/radarr +# shellcheck disable=SC2154 +cp "${SCRIPT_DIR}"/jails/radarr/includes/radarr.rc /mnt/"${global_dataset_iocage}"/jails/radarr/root/usr/local/etc/rc.d/radarr iocage exec radarr chmod u+x /usr/local/etc/rc.d/radarr iocage exec radarr service radarr restart \ No newline at end of file diff --git a/jails/sonarr/install.sh b/jails/sonarr/install.sh index ccc2048e..b63614b9 100755 --- a/jails/sonarr/install.sh +++ b/jails/sonarr/install.sh @@ -2,12 +2,14 @@ # This file contains the install script for sonarr # Check if dataset for completed download and it parent dataset exist, create if they do not. -createmount sonarr ${global_dataset_downloads} -createmount sonarr ${global_dataset_downloads}/complete /mnt/fetched +# shellcheck disable=SC2154 +createmount sonarr "${global_dataset_downloads}" +createmount sonarr "${global_dataset_downloads}"/complete /mnt/fetched # Check if dataset for media library and the dataset for tv shows exist, create if they do not. -createmount sonarr ${global_dataset_media} -createmount sonarr ${global_dataset_media}/shows /mnt/shows +# shellcheck disable=SC2154 +createmount sonarr "${global_dataset_media}" +createmount sonarr "${global_dataset_media}"/shows /mnt/shows iocage exec sonarr "fetch http://download.sonarr.tv/v2/master/mono/NzbDrone.master.tar.gz -o /usr/local/share" iocage exec sonarr "tar -xzvf /usr/local/share/NzbDrone.master.tar.gz -C /usr/local/share" @@ -15,7 +17,8 @@ iocage exec sonarr rm /usr/local/share/NzbDrone.master.tar.gz iocage exec sonarr "pw user add sonarr -c sonarr -u 351 -d /nonexistent -s /usr/bin/nologin" iocage exec sonarr chown -R sonarr:sonarr /usr/local/share/NzbDrone /config iocage exec sonarr mkdir /usr/local/etc/rc.d -cp ${SCRIPT_DIR}/jails/sonarr/includes/sonarr.rc /mnt/${global_dataset_iocage}/jails/sonarr/root/usr/local/etc/rc.d/sonarr +# shellcheck disable=SC2154 +cp "${SCRIPT_DIR}"/jails/sonarr/includes/sonarr.rc /mnt/"${global_dataset_iocage}"/jails/sonarr/root/usr/local/etc/rc.d/sonarr iocage exec sonarr chmod u+x /usr/local/etc/rc.d/sonarr iocage exec sonarr sysrc "sonarr_enable=YES" iocage exec sonarr service sonarr restart diff --git a/jails/sonarr/update.sh b/jails/sonarr/update.sh index 7774c866..47f94384 100755 --- a/jails/sonarr/update.sh +++ b/jails/sonarr/update.sh @@ -4,6 +4,7 @@ iocage exec sonarr service sonarr stop #TODO insert code to update sonarr itself here iocage exec sonarr chown -R sonarr:sonarr /usr/local/share/NzbDrone /config -cp ${SCRIPT_DIR}/jails/sonarr/includes/sonarr.rc /mnt/${global_dataset_iocage}/jails/sonarr/root/usr/local/etc/rc.d/sonarr +# shellcheck disable=SC2154 +cp "${SCRIPT_DIR}"/jails/sonarr/includes/sonarr.rc /mnt/"${global_dataset_iocage}"/jails/sonarr/root/usr/local/etc/rc.d/sonarr iocage exec sonarr chmod u+x /usr/local/etc/rc.d/sonarr iocage exec sonarr service sonarr restart \ No newline at end of file diff --git a/jails/transmission/install.sh b/jails/transmission/install.sh index f2af7b55..43c298c5 100755 --- a/jails/transmission/install.sh +++ b/jails/transmission/install.sh @@ -2,13 +2,14 @@ # This file contains the install script for transmission # Check if dataset Downloads dataset exist, create if they do not. -createmount transmission ${global_dataset_downloads} /mnt/downloads +# shellcheck disable=SC2154 +createmount transmission "${global_dataset_downloads}" /mnt/downloads # Check if dataset Complete Downloads dataset exist, create if they do not. -createmount transmission ${global_dataset_downloads}/complete /mnt/downloads/complete +createmount transmission "${global_dataset_downloads}"/complete /mnt/downloads/complete # Check if dataset InComplete Downloads dataset exist, create if they do not. -createmount transmission ${global_dataset_downloads}/incomplete /mnt/downloads/incomplete +createmount transmission "${global_dataset_downloads}"/incomplete /mnt/downloads/incomplete iocage exec transmission chown -R transmission:transmission /config diff --git a/placeholder b/placeholder deleted file mode 100644 index e69de29b..00000000