- announce-torrents
#!/bin/sh
###########################################################################
## Copyright (C) Wizardry and Steamworks 2018 - License: GNU GPLv3 ##
## Please see: http://www.gnu.org/licenses/gpl.html for legal details, ##
## rights of fair usage, the disclaimer and warranty conditions. ##
###########################################################################
# Load system defaults.
SCRIPT_NAME=`basename $0`
[ -f "/etc/default/$SCRIPT_NAME" ] && . /etc/default/"$SCRIPT_NAME"
# Check that the paths exist.
for DIRECTORY in $DOWNLOADS_FOLDER $TORRENTS_FOLDER $DROPBOX_FOLDER; do
if [ ! -d $DIRECTORY ]; then
logger -p daemon.err "$0: Could not find $DIRECTORY."
exit 1
fi
done
# Acquire a lock.
LOCK_FILE="/var/lock/$SCRIPT_NAME"
if mkdir $LOCK_FILE 2>&1 >/dev/null; then
trap '{ rm -rf $LOCK_FILE; }' KILL QUIT TERM EXIT INT HUP
else
exit 0
fi
IFS=","; for CREATE_FOLDER in `find $DROPBOX_FOLDER -maxdepth 1 -mindepth 1 -not -path '\.*' -type d -printf '%P\n'`; do
logger -p daemon.info "$SCRIPT_NAME: Creating torrent for directory $CREATE_FOLDER"
# Create the .torrent metafile.
mkdir -p /tmp/$SCRIPT_NAME
mktorrent -a $HTTP_TRACKER -a $UDP_TRACKER "$DROPBOX_FOLDER/$CREATE_FOLDER" -o "/tmp/$SCRIPT_NAME/$CREATE_FOLDER.torrent" 2>/dev/null >/dev/null
if [ ! -f "/tmp/$SCRIPT_NAME/$CREATE_FOLDER.torrent" ]; then
logger -p daemon.err "$SCRIPT_NAME: Something went wrong whilst generating the \"$CREATE_FOLDER.torrent\" file."
exit 1
fi
# If the .torrent metafile already exists, compare it to the temporary metafile already generated.
if [ -f "$TORRENTS_FOLDER/$CREATE_FOLDER.torrent" ]; then
SUM_NEW=`sha1sum "/tmp/$SCRIPT_NAME/$CREATE_FOLDER.torrent" | awk '{ print $1 }'`
SUM_OLD=`sha1sum "$TORRENTS_FOLDER/$CREATE_FOLDER.torrent" | awk '{ print $1 }'`
if [ x$SUM_NEW = x$SUM_OLD ]; then
# The files are identical so just terminate.
exit 0
fi
fi
# Check if the download folder already exists and delete it.
if [ -d "$DOWNLOADS_FOLDER/$CREATE_FOLDER" ]; then
rm -rf "$DOWNLOADS_FOLDER/$CREATE_FOLDER"
fi
# Copy the new folder into the downloads folder.
mv "$DROPBOX_FOLDER/$CREATE_FOLDER" "$DOWNLOADS_FOLDER"
# Copy the temporary .torrent metafile into the torrents folder.
mv "/tmp/$SCRIPT_NAME/$CREATE_FOLDER.torrent" "$TORRENTS_FOLDER"
logger -p daemon.info "$SCRIPT_NAME: Created torrent for directory \"$CREATE_FOLDER\"!"
done
unix/torrent_seedbox/automatically_create_torrents/announce-torrents.txt ยท Last modified: 2022/04/19 08:28 by 127.0.0.1