aria2sel: add
This commit is contained in:
parent
746c73323e
commit
6cfe35d978
|
@ -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
|
Loading…
Reference in New Issue