From 7557b76b5b514564f9b2e34fada88886e25fd44c Mon Sep 17 00:00:00 2001 From: Alexandre Date: Mon, 10 Jan 2022 11:31:20 +0100 Subject: [PATCH] revert --- qbittorrent/Dockerfile | 12 +-- .../rootfs/etc/cont-init.d/00-banner.sh | 39 +++++++++ .../rootfs/etc/cont-init.d/92-local_mounts.sh | 32 +++++++ .../rootfs/etc/cont-init.d/92-smb_mounts.sh | 83 +++++++++++++++++++ 4 files changed, 160 insertions(+), 6 deletions(-) create mode 100644 qbittorrent/rootfs/etc/cont-init.d/00-banner.sh create mode 100644 qbittorrent/rootfs/etc/cont-init.d/92-local_mounts.sh create mode 100644 qbittorrent/rootfs/etc/cont-init.d/92-smb_mounts.sh diff --git a/qbittorrent/Dockerfile b/qbittorrent/Dockerfile index 59cd3e9c5..d99f920b4 100644 --- a/qbittorrent/Dockerfile +++ b/qbittorrent/Dockerfile @@ -66,14 +66,14 @@ RUN if ! command -v bash >/dev/null 2>/dev/null; then (apt-get update && apt-get rm /automatic_packages.sh || printf '%s\n' "${PACKAGES:-}" > /ENVFILE # Modules -ARG MODULES="00-banner.sh 92-local_mounts.sh 92-smb_mounts.sh" +#ARG MODULES="00-banner.sh 92-local_mounts.sh 92-smb_mounts.sh" # Automatic modules download -RUN mkdir -p /tmpscripts /scripts /etc/cont-init.d && \ - for scripts in $MODULES; do curl -L -f -s "https://raw.githubusercontent.com/alexbelgium/hassio-addons/master/zzz_templates/$scripts" -o /tmpscripts/"$scripts"; done && \ - /bin/cp -rf /tmpscripts/* {/scripts/, /etc/cont-init.d/} && \ - chmod -R 777 {/scripts, /etc/cont-init.d} && \ - rm -rf /tmpscripts || printf '%s\n' "${MODULES:-}" > /MODULESFILE +#RUN mkdir -p /tmpscripts /scripts /etc/cont-init.d && \ +# for scripts in $MODULES; do curl -L -f -s "https://raw.githubusercontent.com/alexbelgium/hassio-addons/master/zzz_templates/$scripts" -o /tmpscripts/"$scripts"; done && \ +# /bin/cp -rf /tmpscripts/* {/scripts/, /etc/cont-init.d/} && \ +# chmod -R 777 {/scripts, /etc/cont-init.d} && \ +# rm -rf /tmpscripts || printf '%s\n' "${MODULES:-}" > /MODULESFILE ################ # 4 Entrypoint # diff --git a/qbittorrent/rootfs/etc/cont-init.d/00-banner.sh b/qbittorrent/rootfs/etc/cont-init.d/00-banner.sh new file mode 100644 index 000000000..54d7d491a --- /dev/null +++ b/qbittorrent/rootfs/etc/cont-init.d/00-banner.sh @@ -0,0 +1,39 @@ +#!/usr/bin/with-contenv bashio +# ============================================================================== +# Displays a simple add-on banner on startup +# ============================================================================== + +if bashio::supervisor.ping; then + bashio::log.blue \ + '-----------------------------------------------------------' + bashio::log.blue " Add-on: $(bashio::addon.name)" + bashio::log.blue " $(bashio::addon.description)" + bashio::log.blue \ + '-----------------------------------------------------------' + + bashio::log.blue " Add-on version: $(bashio::addon.version)" + if bashio::var.true "$(bashio::addon.update_available)"; then + bashio::log.magenta ' There is an update available for this add-on!' + bashio::log.magenta \ + " Latest add-on version: $(bashio::addon.version_latest)" + bashio::log.magenta ' Please consider upgrading as soon as possible.' + else + bashio::log.green ' You are running the latest version of this add-on.' + fi + + bashio::log.blue " System: $(bashio::info.operating_system)" \ + " ($(bashio::info.arch) / $(bashio::info.machine))" + bashio::log.blue " Home Assistant Core: $(bashio::info.homeassistant)" + bashio::log.blue " Home Assistant Supervisor: $(bashio::info.supervisor)" + + bashio::log.blue \ + '-----------------------------------------------------------' + bashio::log.blue \ + ' Please, share the above information when looking for help' + bashio::log.blue \ + ' or support in, e.g., GitHub, forums' + bashio::log.green \ + ' https://github.com/alexbelgium/hassio-addons' + bashio::log.blue \ + '-----------------------------------------------------------' +fi diff --git a/qbittorrent/rootfs/etc/cont-init.d/92-local_mounts.sh b/qbittorrent/rootfs/etc/cont-init.d/92-local_mounts.sh new file mode 100644 index 000000000..0920d68bd --- /dev/null +++ b/qbittorrent/rootfs/etc/cont-init.d/92-local_mounts.sh @@ -0,0 +1,32 @@ +#!/usr/bin/with-contenv bashio + +###################### +# MOUNT LOCAL SHARES # +###################### + +# Mount local Share if configured +if bashio::config.has_value 'localdisks'; then + + MOREDISKS=$(bashio::config 'localdisks') + echo "Local Disks mounting..." + + # Separate comma separated values + for disk in ${MOREDISKS//,/ }; do + + # Mount by device as default + devpath=/dev + + # Mount as label + [ ${disk:0:2} != "sd" ] && devpath=/dev/disk/by-label + + # Creates dir + mkdir -p /mnt/$disk + chown -R $(id -u):$(id -g) /mnt/$disk + # Legacy mounting : mount to share if still exists (avoid breaking changes) + [ -d /share/$disk ] && mount $devpath/$disk /share/$disk || true + # Mount + mount $devpath/$disk /mnt/$disk && bashio::log.info "Success! $disk mounted to /mnt/$disk" || (bashio::log.fatal "Unable to mount local drives! Please check the name." && rmdir /mnt/$disk) + + done + +fi diff --git a/qbittorrent/rootfs/etc/cont-init.d/92-smb_mounts.sh b/qbittorrent/rootfs/etc/cont-init.d/92-smb_mounts.sh new file mode 100644 index 000000000..2204415af --- /dev/null +++ b/qbittorrent/rootfs/etc/cont-init.d/92-smb_mounts.sh @@ -0,0 +1,83 @@ +!/usr/bin/with-contenv bashio + +######################### +# MOUNT SMB SHARES v1.6 # +######################### +if bashio::config.has_value 'networkdisks'; then + + # Define variables + MOREDISKS=$(bashio::config 'networkdisks') + CIFS_USERNAME=$(bashio::config 'cifsusername') + CIFS_PASSWORD=$(bashio::config 'cifspassword') + MOUNTED=false + SMBVERS="" + SECVERS="" + + # Mount CIFS Share if configured and if Protection Mode is active + echo 'Mounting smb share(s)...' + + if bashio::config.has_value 'cifsdomain'; then + DOMAIN=",domain=$(bashio::config 'cifsdomain')" + else + DOMAIN="" + fi + + # Mounting disks + for disk in ${MOREDISKS//,/ }; do # Separate comma separated values + + # Clean name of network share + disk=$(echo $disk | sed "s,/$,,") # Remove / at end of name + diskname=${disk//\\//} #replace \ with / + diskname=${diskname##*/} # Get only last part of the name + + # Data validation + if [[ ! $disk =~ ^.*+[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+[/]+.*+$ ]]; then + bashio::log.fatal "The structure of your \"networkdisks\" option : \"$disk\" doesn't seem correct, please use a structure like //123.12.12.12/sharedfolder,//123.12.12.12/sharedfolder2. If you don't use it, you can simply remove the text, this will avoid this error message in the future." + exit 0 + fi + + # Prepare mount point + mkdir -p /mnt/$diskname + chown -R root:root /mnt/$diskname + + #Tries to mount with default options + mount -t cifs -o rw,username=$CIFS_USERNAME,password=${CIFS_PASSWORD}$DOMAIN $disk /mnt/$diskname 2>ERRORCODE && MOUNTED=true || MOUNTED=false + + # if Fail test different smb and sec versions + if [ $MOUNTED = false ]; then + for SMBVERS in ",vers=3" ",vers=1.0" ",vers=2.1" ",vers=3.0" ",nodfs" ",uid=0,gid=0,forceuid,forcegid" ",noforceuid,noforcegid" ",${DOMAIN:-WORKGROUP}"; do + mount -t cifs -o rw,file_mode=0777,dir_mode=0777,username=$CIFS_USERNAME,password=${CIFS_PASSWORD}$SMBVERS $disk /mnt/$diskname 2>/dev/null && MOUNTED=true && break || MOUNTED=false + for SECVERS in ",sec=ntlmi" ",sec=ntlmv2" ",sec=ntlmv2i" ",sec=ntlmssp" ",sec=ntlmsspi" ",sec=ntlm" ",sec=krb5i" ",sec=krb5" ",iocharset=utf8"; do + mount -t cifs -o rw,file_mode=0777,dir_mode=0777,username=$CIFS_USERNAME,password=${CIFS_PASSWORD}$SMBVERS$SECVERS $disk /mnt/$disk name 2>/dev/null && MOUNTED=true && break 2 && break || MOUNTED=false + done + done + fi + + # Messages + if [ $MOUNTED = true ] && [ "mountpoint -q /mnt/$diskname" ]; then + #Test write permissions + touch /mnt/$diskname/testaze && rm /mnt/$diskname/testaze && + bashio::log.info "... $disk successfully mounted to /mnt/$diskname with options $SMBVERS$SECVERS" || + bashio::log.fatal "Disk is mounted, however unable to write in the shared disk. Please check UID/GID for permissions, and if the share is rw" + + else + # Mounting failed messages + bashio::log.fatal "Error, unable to mount $disk to /mnt/$diskname with username $CIFS_USERNAME, $CIFS_PASSWORD. Please check your remote share path, username, password, domain, try putting 0 in UID and GID" + bashio::log.fatal "Here is some debugging info :" + + # Provide debugging info + smbclient -V &>/dev/null || apt-get install smbclient || apk add --no-cache samba-client + #smbclient $disk -U $CIFS_USERNAME%$CIFS_PASSWORD || true + smbclient -L $disk -U $CIFS_USERNAME%$CIFS_PASSWORD || true + + # Error code + bashio::log.fatal "Error read : $(/dev/null || true + rmdir /mnt/$diskname || true + fi + + done +fi