Pomoc Transmission edycja skryptu wywolujacego sie po pobraniu plikow

lukjod

Entry Technician
Q Associate
2 Lipiec 2014
43
1
7
8
50
Warszawa
QNAP
TS-x64
Ethernet
1 GbE
Witam,
bardzo prosze o pomoc w edycji skryptu rozpakowujacego sciagniete archiwa, skrypt ten jest wywolywany automatycznie przez transmission po zakonczeniu pobierania torrenta:
Bash:
#!/bin/sh
set -x
TR_DIR="${TR_TORRENT_DIR}"
TR_NAME="${TR_TORRENT_NAME}"
QPKG_DIR=`/sbin/getcfg Transmission Install_Path -f /etc/config/qpkg.conf`
FIND_PATH="${QPKG_DIR}/bin/find"
LOG_FILE_PATH="${QPKG_DIR}/web-gui/admin/logs/unpack.log"   #PATH to store the log file, blank to disable
UNRAR_TRIGGERS="x -y -o+ -idp" #triggers for unrar operation, use this to control the info logged (see unrar command manual)
UNZIP_TRIGGERS="-o" #same as unrar but for zip.
DECOMPRESS_TO_DIR=`/sbin/getcfg unzip_unrar DECOMPRESS_TO -f ${QPKG_DIR}/conf/addons.conf` #If blank will unpack in its own directory, else will unpack to a fixed directory
ACTION_TIME=$(date +%d-%m-%Y\ %H:%M:%S)
if [ -z $DECOMPRESS_TO_DIR ]; then
    DESTINATION_DIR="$TR_DIR/$TR_NAME"
else
    DESTINATION_DIR="$DECOMPRESS_TO_DIR/$TR_NAME"
fi
    cd "$TR_DIR"
    if [ -d "$TR_NAME" ]; then
        cd "$TR_NAME"
        IFS=$'\n'
        unset RAR_FILES i
        FIND_RESULTS=`$FIND_PATH -maxdepth 1 -iname "*.rar"`
        for RAR_FILE in $FIND_RESULTS; do
            if [[ $RAR_FILE =~ .*part.*.rar ]]; then
                if [[ $RAR_FILE =~ .*part0*1.rar ]]; then
                    RAR_FILES[i++]=$RAR_FILE
                fi
            else
                RAR_FILES[i++]=$RAR_FILE
            fi
        done
        unset IFS
        unset FIND_RESULTS
   
        if [ ${#RAR_FILES} -gt 0 ]; then
        mkdir -p "$DESTINATION_DIR/$TR_NAME"
        for RAR_FILE in "${RAR_FILES[@]}"; do
            /opt/bin/unrar $UNRAR_TRIGGERS "$RAR_FILE" "$DESTINATION_DIR/$TR_NAME" >> $LOG_FILE_PATH
            if [ $? -gt 0 ]; then
                echo $ACTION_TIME "Error unrarring $TR_NAME torrent" >> $LOG_FILE_PATH
                exit 0
            else
                echo $ACTION_TIME "Unrarred $TR_NAME torrent" >> $LOG_FILE_PATH
            fi
        done
        fi
   
        IFS=$'\n'
        FIND_RESULTS=`$FIND_PATH -maxdepth 1 -iname "*.zip"`
        for ZIP_FILE in $FIND_RESULTS; do
            ZIP_FILES[i++]=$ZIP_FILE
        done
        if [ ${#ZIP_FILES} -gt 0 ]; then
            mkdir -p "$DESTINATION_DIR/$TR_NAME"
            for ZIP_FILE in "${ZIP_FILES[@]}"; do
                /opt/bin/unzip $UNZIP_TRIGGERS "$ZIP_FILE" -d "$DESTINATION_DIR/$TR_NAME" >> $LOG_FILE_PATH
                if [ $? -gt 0 ]; then
                    echo $ACTION_TIME "Error unziping $TR_NAME torrent" >> $LOG_FILE_PATH
                    exit 0
                else
                    echo $ACTION_TIME "Unziped $TR_NAME torrent" >> $LOG_FILE_PATH
                fi
            done
        fi
        unset IFS
   
    #in case the torrent is a file
    else
        #special case when the torrent name contains the archive extension
        FILENAME=`${QPKG_DIR}/bin/basename "$TR_NAME" .rar`
        if [ -f "$FILENAME.rar" ]; then
            echo "Special rar archive found ..."
       
            if [ -z "$DECOMPRESS_TO_DIR" ]; then
                DESTINATION_DIR="${TR_DIR}/$FILENAME"
            else
                DESTINATION_DIR="$DECOMPRESS_TO_DIR/$FILENAME"
            fi
       
            mkdir -p "$DESTINATION_DIR"
       
            /opt/bin/unrar $UNRAR_TRIGGERS "$FILENAME.rar" "$DESTINATION_DIR" >> $LOG_FILE_PATH
            if [ $? -gt 0 ]; then
                echo $ACTION_TIME "Error unrarring $TR_NAME torrent" >> $LOG_FILE_PATH
                exit 0
            else
                echo $ACTION_TIME "Unrarred $TR_NAME torrent" >> $LOG_FILE_PATH
            fi
        else
            if [ -f "$TR_NAME.rar" ]; then
                mkdir -p "$DESTINATION_DIR"
                /opt/bin/unrar $UNRAR_TRIGGERS "$TR_NAME.rar" "$DESTINATION_DIR" >> $LOG_FILE_PATH
                if [ $? -gt 0 ]; then
                    echo $ACTION_TIME "Error unrarring $TR_NAME torrent" >> $LOG_FILE_PATH
                    exit 0
                else
                    echo $ACTION_TIME "Unrarred $TR_NAME torrent" >> $LOG_FILE_PATH
                fi
            fi
        fi
        FILENAME=`${QPKG_DIR}/bin/basename "$TR_NAME" .zip`
        if [ -f "$FILENAME.zip" ]; then
            echo "Special zip archive found ..."
            mkdir -p "$DESTINATION_DIR"
            /opt/bin/unzip $UNZIP_TRIGGERS "$FILENAME.zip" -d "$DESTINATION_DIR" \ >> $LOG_FILE_PATH
            if [ $? -gt 0 ]; then
                echo $ACTION_TIME "Error unzipping $TR_NAME torrent" >> $LOG_FILE_PATH
                exit 0
            else
                echo $ACTION_TIME "Unziped $TR_NAME torrent" >> $LOG_FILE_PATH
            fi
        else
            LIST_ZIP_FILE=`ls "$TR_NAME.zip" 2>/dev/null`
            if [ ! -z "$LIST_ZIP_FILE" ]; then
                mkdir -p "$DESTINATION_DIR"
                /opt/bin/unzip $UNZIP_TRIGGERS "$LIST_ZIP_FILE" -d "$DESTINATION_DIR" >> $LOG_FILE_PATH
                if [ $? -gt 0 ]; then
                    echo $ACTION_TIME "Error unzipping $TR_NAME torrent" >> $LOG_FILE_PATH
                    exit 0
                else
                    echo $ACTION_TIME "Unziped $TR_NAME torrent" >> $LOG_FILE_PATH
                fi
            fi
        fi
    fi

Zainstalowalem u siebie filebota (skrypt czyszczacy nazwy fimow seriali i muzyki i przenoszace zawartosc do odpowiedniego foldera.

Jak moge dopisac wywolanie dla tego skryptu aby byl uruchamiany po zakonczeniu skryptu zamieszczonego powyzej i uruchamial sie dla katalogu z wlasnie pobranym torrentem:
wyglada to tak:
Bash:
#!/bin/bash

/share/HDA_DATA/.qpkg/Filebot/filebot.sh -script fn:amc "/share/HDA_DATA/Download/transmission/completed"  --output "/share/HDA_DATA/Download" --log-file amc.log  --action copy --conflict override -non-strict --def minFileSize=30000 artwork=n "musicFormat=Music/{n}/{t}" "seriesFormat=TV/{n}/Season {s.pad(2)}/{s00e00} - {t}" "movieFormat=FILM/{n} ({y})/{n} ({y})"

# Wywolanie napi dla katalogu /Movies /Series

/share/HDA_DATA/.qpkg/Optware/bin/napi.sh -s -c -n -f subrip --stats -l /share/HDA_DATA/Download/napi_filebot_filmy.log -lo /share/HDA_DATA/Download/Movies
/share/HDA_DATA/.qpkg/Optware/bin/napi.sh -s -c -n -f subrip --stats -l /share/HDA_DATA/Download/napi_filebot_seriale.log -lo /share/HDA_DATA/Download/Series

Prosze o pomoc kogos kto wie jak to wrapowac
 
Nie dziala probuje juz 3 raz i nie wywoluje sie albo cos robie nie tak albo juz sam nie wiem, ale pliku ktore sciagam nie sa spakowane, moze tutaj skrypt sie nieodpala i nie przepuszcza dalej?
zawrtosc po edycji pliku /share/HDA_DATA/.qpkg/Transmission/scripts/run_scripts.sh
Bash:
#!/bin/sh

chmod -R 0777 $TR_TORRENT_DIR

/share/HDA_DATA/.qpkg/Transmission/scripts/addons/unrar_unzip_script.sh

QPKG_DIR=`/sbin/getcfg Transmission Install_Path -f /etc/config/qpkg.conf`
TR_ADDONS=$QPKG_DIR/scripts/addons
ACTION_TIME=$(date +%d-%m-%Y\ %H:%M:%S)
NAME=$0
_err(){
    local msg_type="err!"
    local write_err="/sbin/log_tool -t2 -u$NAME -p127.0.0.1 -mlocalhost -a"
    local message="$NAME: ${*:-"Unknown Error"}" && $write_err "($msg_type) $message"
    echo "${ACTION_TIME} $message" >> /share/Download/transmission_scripts.log
    echo -e "($msg_type) $message \n"
}
if [ -x "$TR_ADDONS/auto_subsdler_script.sh" ] && [ -f "$TR_ADDONS/auto_subsdler_script.sh" ]; then
    $TR_ADDONS/auto_subsdler_script.sh
else
    _err "Nie mozna odnalezc pliku lub nie jest on wykonywalny $TR_ADDONS/auto_subsdler_script.sh"
fi

oraz pliku /share/HDA_DATA/.qpkg/Transmission/scripts/addons/auto_subsdler_script.sh
Bash:
#!/bin/sh
TR_DIR="${TR_TORRENT_DIR}"
TR_NAME="${TR_TORRENT_NAME}"
QPKG_DIR=`/sbin/getcfg Transmission Install_Path -f /etc/config/qpkg.conf`
DECOMPRESS_TO_DIR=`/sbin/getcfg unzip_unrar DECOMPRESS_TO -f ${QPKG_DIR}/conf/addons.conf`
if [ -z $DECOMPRESS_TO_DIR ]; then
    DESTINATION_DIR="$TR_DIR/$TR_NAME"
else
    DESTINATION_DIR="$DECOMPRESS_TO_DIR/$TR_NAME"
fi
cd "$TR_DIR"
if [ -d "$TR_NAME" ]; then
    cd "$TR_NAME"
fi
##in case the torrent is a file
#else
/share/HDA_DATA/.qpkg/Filebot/trans.sh
niesety nie dziala, poza tym czy mozna dopisac do skryptu wywolujacego zeby pobieral nazwe nowo wypakowanego foldera ze skryptu unrar_unzip_script.sh