aria2sel: add

This commit is contained in:
yosh 2024-02-03 13:39:38 -05:00
parent 746c73323e
commit 6cfe35d978
1 changed files with 37 additions and 0 deletions

37
aria2sel Executable file
View File

@ -0,0 +1,37 @@
#!/bin/sh
set -euf
# wrapper script over --select-file for downloading from aria2c torrents
# escape stuff for evaluating
escape() {
sed -e "s/^$/''/" -e "s/'/'\\\\''/g" <<-EOF
$1
EOF
}
errecho() { printf '%s\n' "$*" >&2; }
FILTER_CMD="" FILTER_STR="" DOWNLOAD=""
while getopts ":dFin:" OPT; do
case "$OPT" in
d) DOWNLOAD=1 ;;
F|i) FILTER_STR="${FILTER_STR} -$OPTARG" ;;
n)
FILTER_CMD="$FILTER_CMD | grep -E ${FILTER_STR} -e '$(escape "$OPTARG")'"
;;
*)
esac
done
shift $((OPTIND - 1))
[ -z "${1:-}" ] && errecho "error: torrent file needed" && exit 1
[ -z "$FILTER_CMD" ] && errecho "error: no filters! use -n" && exit 1
inds=$(eval "aria2c -S '$(escape "$1")' $FILTER_CMD | cut -d '|' -f 1 | tr -d ' ' | paste -s -d ','")
echo "$inds"
if [ -n "$DOWNLOAD" ]; then
aria2c --select-file="$inds" "$1"
fi