scripts sorted
This commit is contained in:
49
.scripts/tools/compiler
Executable file
49
.scripts/tools/compiler
Executable file
@@ -0,0 +1,49 @@
|
||||
#!/bin/sh
|
||||
|
||||
# This script will compile or run another finishing operation on a document. I
|
||||
# have this script run via vim.
|
||||
#
|
||||
# tex files: Compiles to pdf, including bibliography if necessary
|
||||
# md files: Compiles to pdf via pandoc
|
||||
# rmd files: Compiles via R Markdown
|
||||
# c files: Compiles via whatever compiler is set to cc. Usually gcc.
|
||||
# py files: runs via python command
|
||||
# go files: compiles and runs with "go run"
|
||||
# config.h files: (For suckless utils) recompiles and installs program.
|
||||
# all others: run `sent` to show a presentation
|
||||
|
||||
file=$(readlink -f "$1")
|
||||
dir=$(dirname "$file")
|
||||
base="${file%.*}"
|
||||
shebang=$(sed -n 1p "$file")
|
||||
|
||||
cd "$dir" || exit
|
||||
|
||||
textype() { \
|
||||
command="pdflatex"
|
||||
( sed 5q "$file" | grep -i -q 'xelatex' ) && command="xelatex"
|
||||
$command --output-directory="$dir" "$base" &&
|
||||
grep -i addbibresource "$file" >/dev/null &&
|
||||
biber --input-directory "$dir" "$base" &&
|
||||
$command --output-directory="$dir" "$base" &&
|
||||
$command --output-directory="$dir" "$base"
|
||||
}
|
||||
|
||||
shebangtest() {
|
||||
case "$shebang" in
|
||||
\#\!*) "$file" ;;
|
||||
*) sent "$file" 2>/dev/null & ;;
|
||||
esac
|
||||
}
|
||||
|
||||
case "$file" in
|
||||
*\.ms) refer -PS -e "$file" | groff -me -ms -kejpt -T pdf > "$base".pdf ;;
|
||||
*\.rmd) echo "require(rmarkdown); render('$file')" | R --vanilla ;;
|
||||
*\.tex) textype "$file" ;;
|
||||
*\.md) pandoc "$file" --pdf-engine=xelatex -o "$base".pdf ;;
|
||||
*config.h) make && sudo make install ;;
|
||||
*\.c) cc "$file" -o "$base" && "$base" ;;
|
||||
*\.py) python "$file" ;;
|
||||
*\.go) go run "$file" ;;
|
||||
*) shebangtest ;;
|
||||
esac
|
||||
14
.scripts/tools/dmenuhandler
Executable file
14
.scripts/tools/dmenuhandler
Executable file
@@ -0,0 +1,14 @@
|
||||
#!/bin/sh
|
||||
# Feed this script a link and it will give dmenu
|
||||
# some choice programs to use to open it.
|
||||
|
||||
x=$(printf "mpv\\nmpv (loop)\\nwget\\nfeh\\nbrowser\\nw3m\\nmpv (float)" | dmenu -i -p "Open link with what program?")
|
||||
case "$x" in
|
||||
mpv) setsid mpv -quiet "$1" >/dev/null 2>&1 & ;;
|
||||
"mpv (loop)") setsid mpv -quiet --loop "$1" >/dev/null 2>&1 & ;;
|
||||
wget) wget "$1" >/dev/null 2>&1 ;;
|
||||
browser) setsid "$TRUEBROWSER" "$1" & ;;
|
||||
feh) setsid feh "$1" >/dev/null 2>&1 & ;;
|
||||
w3m) w3m "$1" >/dev/null 2>&1 ;;
|
||||
"mpv (float)") setsid mpv --geometry=+0-0 --autofit=30% --title="mpvfloat" "$1" >/dev/null 2>&1 & ;;
|
||||
esac
|
||||
1
.scripts/tools/ext
Symbolic link
1
.scripts/tools/ext
Symbolic link
@@ -0,0 +1 @@
|
||||
extract
|
||||
41
.scripts/tools/extract
Executable file
41
.scripts/tools/extract
Executable file
@@ -0,0 +1,41 @@
|
||||
#!/bin/sh
|
||||
# A general, all-purpose extraction script.
|
||||
#
|
||||
# Default behavior: Extract archive into new directory
|
||||
# Behavior with `-c` option: Extract contents into current directory
|
||||
|
||||
while getopts "hc" o; do case "${o}" in
|
||||
c) extracthere="True" ;;
|
||||
*) printf "Options:\\n -c: Extract archive into current directory rather than a new one.\\n" && exit ;;
|
||||
esac done
|
||||
|
||||
if [ -z "$extracthere" ]; then
|
||||
archive="$(readlink -f "$*")" &&
|
||||
directory=${archive%.*} &&
|
||||
mkdir -p "$directory" &&
|
||||
cd "$directory" || exit
|
||||
else
|
||||
archive="$(readlink -f "$(echo "$*" | cut -d' ' -f2)")"
|
||||
fi
|
||||
|
||||
[ "$archive" = "" ] && printf "Give archive to extract as argument.\\n" && exit
|
||||
|
||||
if [ -f "$archive" ] ; then
|
||||
case "$archive" in
|
||||
*.tar.bz2|*.tar.xz|*.tbz2) tar xvjf "$archive" ;;
|
||||
*.tar.gz|*.tgz) tar xvzf "$archive" ;;
|
||||
*.lzma) unlzma "$archive" ;;
|
||||
*.bz2) bunzip2 "$archive" ;;
|
||||
*.rar) unrar x -ad "$archive" ;;
|
||||
*.gz) gunzip "$archive" ;;
|
||||
*.tar) tar xvf "$archive" ;;
|
||||
*.zip) unzip "$archive" ;;
|
||||
*.Z) uncompress "$archive" ;;
|
||||
*.7z) 7z x "$archive" ;;
|
||||
*.xz) unxz "$archive" ;;
|
||||
*.exe) cabextract "$archive" ;;
|
||||
*) printf "extract: '%s' - unknown archive method\\n" "$archive" ;;
|
||||
esac
|
||||
else
|
||||
printf "File \"%s\" not found.\\n" "$archive"
|
||||
fi
|
||||
15
.scripts/tools/getbib
Executable file
15
.scripts/tools/getbib
Executable file
@@ -0,0 +1,15 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Give this script a .pdf and it will attempt
|
||||
# to return a proper .bib citation via doi.
|
||||
# Internet connection required.
|
||||
|
||||
# Get the doi from metadata, if not possible, get
|
||||
# doi from pdftotext output, if not possible, exit.
|
||||
doi=$(pdfinfo "$1" | grep -o doi:.*) ||
|
||||
doi=$(pdftotext "$1" - | grep -o doi.* -m 1) ||
|
||||
exit 1
|
||||
|
||||
# Check crossref.org for the bib citation.
|
||||
curl -s "http://api.crossref.org/works/$doi/transform/application/x-bibtex" -w "\n" |
|
||||
sed -e "/^[^\(\t\|@\|}\)]/d"
|
||||
5
.scripts/tools/getkeys
Executable file
5
.scripts/tools/getkeys
Executable file
@@ -0,0 +1,5 @@
|
||||
#!/bin/sh
|
||||
|
||||
cat ~/.scripts/.getkeys/"$1" 2>/dev/null && exit
|
||||
echo Run command with one of the following arguments for info about that program:
|
||||
ls ~/.scripts/.getkeys
|
||||
25
.scripts/tools/linkhandler
Executable file
25
.scripts/tools/linkhandler
Executable file
@@ -0,0 +1,25 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Feed script a url.
|
||||
# If an image, it will view in feh,
|
||||
# if a video or gif, it will view in mpv
|
||||
# if a music file or pdf, it will download,
|
||||
# otherwise it opens link in browser.
|
||||
|
||||
# Sci-Hub's domain occasionally changes due to shutdowns:
|
||||
scihub="http://sci-hub.tw/"
|
||||
|
||||
# If no url given. Opens browser. For using script as $BROWSER.
|
||||
[ -z "$1" ] && { "$TRUEBROWSER"; exit; }
|
||||
|
||||
case "$1" in
|
||||
*mkv|*webm|*mp4|*gif|*youtube.com*|*hooktube.com*)
|
||||
setsid mpv -quiet "$1" >/dev/null 2>&1 & ;;
|
||||
*png|*jpg|*jpe|*jpeg)
|
||||
setsid feh "$1" >/dev/null 2>&1 & ;;
|
||||
*mp3|*flac|*opus|*mp3?source)
|
||||
setsid tsp wget "$1" >/dev/null 2>&1 & ;;
|
||||
*springer.com*)
|
||||
setsid curl -sO "$(curl -s "$scihub$*" | grep -Po "(?<=location.href=').+.pdf")" >/dev/null 2>&1 & ;;
|
||||
*) setsid "$TRUEBROWSER" "$1" >/dev/null 2>&1 & ;;
|
||||
esac
|
||||
43
.scripts/tools/lmc
Executable file
43
.scripts/tools/lmc
Executable file
@@ -0,0 +1,43 @@
|
||||
#!/bin/bash
|
||||
|
||||
# A general audio interface for LARBS.
|
||||
|
||||
newvol="pkill -RTMIN+10 i3blocks"
|
||||
|
||||
[ -z "$2" ] && num="2" || num="$2"
|
||||
|
||||
case "$1" in
|
||||
u*) pulsemixer --change-volume +"$num" ; $newvol ;;
|
||||
d*) pulsemixer --change-volume -"$num" ; $newvol ;;
|
||||
m*) pulsemixer --toggle-mute ; $newvol ;;
|
||||
truemute) pulsemixer --mute ; $newvol ;;
|
||||
play) mpc play ;;
|
||||
n*) mpc next ;;
|
||||
prev) mpc prev ;;
|
||||
t*) mpc toggle ;;
|
||||
p*) mpc pause ; pauseallmpv ;;
|
||||
f*) mpc seek +"$num" ;;
|
||||
b*) mpc seek -"$num" ;;
|
||||
r*) mpc seek 0\% ;;
|
||||
*) cat << EOF
|
||||
lmc: cli music interface for mpd and pulse for those with divine intellect too
|
||||
grand to remember the mpc/pamixer commands.
|
||||
|
||||
Allowed options:
|
||||
up NUM Increase volume (2 secs default)
|
||||
down NUM Decrease volume (2 secs default)
|
||||
mute Toggle mute
|
||||
truemute Mute
|
||||
next Next track
|
||||
prev Previous track
|
||||
toggle Toggle pause
|
||||
truepause Pause
|
||||
foward NUM Seek foward in song (2 secs default)
|
||||
back NUM Seek back in song (2 secs default)
|
||||
restart Restart current song
|
||||
all else Print this message
|
||||
|
||||
All of these commands, except for \`truemute\`, \`prev\` and \`play\` can be truncated,
|
||||
i.e. \`lmc r\` for \`lmc restart\`.
|
||||
EOF
|
||||
esac
|
||||
7
.scripts/tools/note
Executable file
7
.scripts/tools/note
Executable file
@@ -0,0 +1,7 @@
|
||||
#!/bin/sh
|
||||
|
||||
# A super basic command. Give it some arguments to use as anotification. It
|
||||
# will echo them on the terminal, and if you have `dunst` running, will send a
|
||||
# `notify-send` message to it.
|
||||
|
||||
echo "$@" && pgrep -x dunst >/dev/null && notify-send "$@"
|
||||
11
.scripts/tools/opout
Executable file
11
.scripts/tools/opout
Executable file
@@ -0,0 +1,11 @@
|
||||
#!/bin/sh
|
||||
# opout: "open output": A general handler for opening a file's intended output.
|
||||
# I find this useful especially running from vim.
|
||||
|
||||
basename="${1%.*}"
|
||||
|
||||
case "$1" in
|
||||
*.tex|*.md|*.rmd|*.ms|*.me) setsid zathura "$basename".pdf >/dev/null 2>&1 & ;;
|
||||
*.html) setsid "$TRUEBROWSER" --new-window "$basename".html >/dev/null 2>&1 & ;;
|
||||
*.sent) setsid sent "$1" >/dev/null 2>&1 & ;;
|
||||
esac
|
||||
4
.scripts/tools/pauseallmpv
Executable file
4
.scripts/tools/pauseallmpv
Executable file
@@ -0,0 +1,4 @@
|
||||
#!/bin/sh
|
||||
# Sends a , key to all mpv instances, pausing them at the last frame.
|
||||
|
||||
xdotool search --class mpv | xargs -I % xdotool key --window % comma
|
||||
19
.scripts/tools/remaps
Executable file
19
.scripts/tools/remaps
Executable file
@@ -0,0 +1,19 @@
|
||||
#!/bin/sh
|
||||
|
||||
# This script is called by i3 on startup.
|
||||
|
||||
# Increase key speed via a rate change
|
||||
xset r rate 300 50
|
||||
# Map the caps lock key to super...
|
||||
setxkbmap -layout us -variant altgr-intl -option caps:super
|
||||
# If you don't want a us international keyboard, rather whatever keyboard
|
||||
# you set in your installation, comment out the above line and uncomment
|
||||
# the one below.
|
||||
#setxkbmap -option caps:super
|
||||
|
||||
# But when it is pressed only once, treat it as escape.
|
||||
killall xcape ; xcape -e 'Super_L=Escape'
|
||||
|
||||
# Map the menu button to right super as well.
|
||||
xmodmap -e 'keycode 135 = Super_R'
|
||||
#keycode 135 = Super_R NoSymbol Super_R
|
||||
38
.scripts/tools/shortcuts
Executable file
38
.scripts/tools/shortcuts
Executable file
@@ -0,0 +1,38 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Shell rc file (i.e. bash vs. zsh, etc.)
|
||||
shellrc="$HOME/.bashrc"
|
||||
|
||||
# Config locations
|
||||
folders="$HOME/.key_directories"
|
||||
configs="$HOME/.key_files"
|
||||
|
||||
# Output locations
|
||||
shell_shortcuts="$HOME/.shortcuts"
|
||||
ranger_shortcuts="$HOME/.config/ranger/shortcuts.conf"
|
||||
qute_shortcuts="$HOME/.config/qutebrowser/shortcuts.py"
|
||||
fish_shortcuts="$HOME/.config/fish/shortcuts.fish"
|
||||
|
||||
# Remove
|
||||
rm -f "$ranger_shortcuts" "$qute_shortcuts"
|
||||
echo "abbr \\" > "$fish_shortcuts"
|
||||
echo "alias \\" > "$shell_shortcuts"
|
||||
|
||||
# Ensure text of argument 1 exists in the file argument 2
|
||||
ensure() { (grep "$1" "$2")>/dev/null 2>&1 || echo "$1" >> "$2" ;}
|
||||
|
||||
ensure "source $shell_shortcuts" "$shellrc"
|
||||
ensure "source $HOME/.config/ranger/shortcuts.conf" "$HOME/.config/ranger/rc.conf"
|
||||
ensure "config.source('shortcuts.py')" "$HOME/.config/qutebrowser/config.py"
|
||||
ensure "source $HOME/.config/fish/shortcuts.fish" "$HOME/.config/fish/config.fish"
|
||||
|
||||
# Format the `folders` file in the correct syntax and sent it to all three configs.
|
||||
sed "s/#.*$//;/^$/d" "$folders" | tee >(awk '{print $1"=\"cd "$2" && ls -a\" \\"}' >> "$shell_shortcuts") \
|
||||
>(awk '{print $1, "\"cd " $2 " ; ls -a\" \\"}' >> "$fish_shortcuts") \
|
||||
>(awk '{print "config.bind(\";"$1"\", \"set downloads.location.directory "$2" ;; hint links download\")"}' >> "$qute_shortcuts") \
|
||||
| awk '{print "map g"$1" cd "$2"\nmap t"$1" tab_new "$2"\nmap m"$1" shell mv -v %s "$2"\nmap Y"$1" shell cp -rv %s "$2}' >> "$ranger_shortcuts"
|
||||
|
||||
# Format the `configs` file in the correct syntax and sent it to both configs.
|
||||
sed "s/#.*$//;/^$/d" "$configs" | tee >(awk '{print $1"=\"$EDITOR "$2"\" \\"}' >> "$shell_shortcuts") \
|
||||
>(awk '{print $1, "\"$EDITOR "$2"\" \\"}' >> "$fish_shortcuts") \
|
||||
| awk '{print "map "$1" shell $EDITOR "$2}' >> "$ranger_shortcuts"
|
||||
7
.scripts/tools/speedvid
Executable file
7
.scripts/tools/speedvid
Executable file
@@ -0,0 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
base=$(basename $1)
|
||||
ext="${base##*.}"
|
||||
base="${base%.*}"
|
||||
|
||||
ffmpeg -i $1 -vf "setpts=$2*PTS" -an $base'_sped.'$ext
|
||||
12
.scripts/tools/texclear
Executable file
12
.scripts/tools/texclear
Executable file
@@ -0,0 +1,12 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Clears the build files of a LaTeX/XeLaTeX build.
|
||||
# I have vim run this file whenever I exit a .tex file.
|
||||
|
||||
[[ "$1" == *.tex ]] || exit
|
||||
|
||||
file=$(readlink -f "$1")
|
||||
dir=$(dirname "$file")
|
||||
base="${file%.*}"
|
||||
|
||||
find "$dir" -maxdepth 1 -type f -regextype gnu-awk -regex "^$base\.(4tc|xref|tmp|pyc|pyo|fls|vrb|fdb_latexmk|bak|swp|aux|log|synctex\(busy\)|lof|nav|out|snm|toc|bcf|run\.xml|synctex\.gz|blg|bbl)" -delete
|
||||
169
.scripts/tools/tpb
Executable file
169
.scripts/tools/tpb
Executable file
@@ -0,0 +1,169 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# by Sairon Istyar, 2012
|
||||
# distributed under the GPLv3 license
|
||||
# http://www.opensource.org/licenses/gpl-3.0.html
|
||||
#
|
||||
|
||||
### CONFIGURATION ###
|
||||
# program to use for torrent download
|
||||
# magnet link to torrent will be appended
|
||||
# you can add -- at the end to indicate end of options
|
||||
# (if your program supports it, most do)
|
||||
program='/usr/bin/transmission-remote -a'
|
||||
daemon='transmission-daemon'
|
||||
TPB="https://thepiratebay.org"
|
||||
|
||||
# show N first matches by default
|
||||
limit=50
|
||||
|
||||
# colors
|
||||
numbcolor='\x1b[1;35m'
|
||||
namecolor='\x1b[1;33m'
|
||||
sizecolor='\x1b[1;36m'
|
||||
seedcolor='\x1b[1;31m'
|
||||
peercolor='\x1b[1;32m'
|
||||
errocolor='\x1b[1;31m'
|
||||
mesgcolor='\x1b[1;37m'
|
||||
nonecolor='\x1b[0m'
|
||||
|
||||
# default ordering method
|
||||
# 1 - name ascending; 2 - name descending;
|
||||
# 3 - recent first; 4 - oldest first;
|
||||
# 5 - size descending; 6 - size ascending;
|
||||
# 7 - seeds descending; 8 - seeds ascending;
|
||||
# 9 - leechers descending; 10 - leechers ascending;
|
||||
orderby=7
|
||||
### END CONFIGURATION ###
|
||||
|
||||
thisfile="$0"
|
||||
|
||||
printhelp() {
|
||||
echo -e "Usage:"
|
||||
echo -e "\t$thisfile [options] search query"
|
||||
echo
|
||||
echo
|
||||
echo -e "Available options:"
|
||||
echo -e "\t-h\t\tShow help"
|
||||
echo -e "\t-n [num]\tShow only first N results (default 15; max 100 [top] or 30 [search])"
|
||||
echo -e "\t-C\t\tDo not use colors"
|
||||
echo -e "\t-P [prog]\tSet torrent client command (\`-P torrent-client\` OR \`-P \"torrent-client --options\"\`)"
|
||||
echo
|
||||
echo -e "Current client settings: $program [magnet link]"
|
||||
}
|
||||
|
||||
# change torrent client
|
||||
chex() {
|
||||
sed "s!^program=.*!program=\'$program\'!" -i "$thisfile"
|
||||
if [ $? -eq 0 ] ; then
|
||||
echo "Client changed successfully."
|
||||
exit 0
|
||||
else
|
||||
echo -e "${errocolor}(EE) ${mesgcolor}==> Something went wrong!${nonecolor}"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
# script cmdline option handling
|
||||
while getopts :hn:CP:: opt ; do
|
||||
case "$opt" in
|
||||
h) printhelp; exit 0;;
|
||||
n) limit="$OPTARG";;
|
||||
C) unset numbcolor namecolor sizecolor seedcolor peercolor nonecolor errocolor mesgcolor;;
|
||||
P) program="$OPTARG"; chex;;
|
||||
*) echo -e "Unknown option(s)."; printhelp; exit 1;;
|
||||
esac
|
||||
done
|
||||
|
||||
shift `expr $OPTIND - 1`
|
||||
|
||||
# correctly encode query
|
||||
q=`echo "$*" | tr -d '\n' | od -t x1 -A n | tr ' ' '%'`
|
||||
|
||||
# if not searching, show top torrents
|
||||
if [ -z "$q" ] ; then
|
||||
url="top/all"
|
||||
else
|
||||
url='search/'"$q"'/0/'"$orderby"'/0'
|
||||
fi
|
||||
|
||||
# get results
|
||||
# Here be dragons!
|
||||
r=`curl -k -A Mozilla -b "lw=s" -m 15 -s "$TPB/$url" \
|
||||
| grep -Eo '^<td><a href=\"/torrent/[^>]*>.*|^<td><nobr><a href=\"[^"]*|<td align=\"right\">[^<]*' \
|
||||
| sed 's!^<td><a href=\"/torrent/[^>]*>!!; \
|
||||
s!</a>$!!; \
|
||||
s!^<td><nobr><a href=\"!!; \
|
||||
s!^<td [^>]*>!!; \
|
||||
s! !\ !g; \
|
||||
s/|/!/g' \
|
||||
| sed 'N;N;N;N;s!\n!|!g'`
|
||||
|
||||
# number of results
|
||||
n=`echo "$r" | wc -l`
|
||||
|
||||
IFS=$'\n'
|
||||
|
||||
# print results
|
||||
echo "$r" \
|
||||
| head -n "$limit" \
|
||||
| awk -v N=1 \
|
||||
-v NU="$numbcolor" \
|
||||
-v NA="$namecolor" \
|
||||
-v SI="$sizecolor" \
|
||||
-v SE="$seedcolor" \
|
||||
-v PE="$peercolor" \
|
||||
-v NO="$nonecolor" \
|
||||
-F '|' \
|
||||
'{print NU N ") " NA $1 " " SI $3 " " SE $4 " " PE $5 NO; N++}'
|
||||
|
||||
# read ID(s), expand ranges, ignore everything else
|
||||
read -p ">> Torrents to download (eg. 1 3 5-7): " selection
|
||||
IFS=$'\n\ '
|
||||
for num in $selection ; do
|
||||
if [ "$num" = "`echo $num | grep -o '[[:digit:]][[:digit:]]*'`" ] ; then
|
||||
down="$down $num"
|
||||
elif [ "$num" = "`echo $num | grep -o '[[:digit:]][[:digit:]]*-[[:digit:]][[:digit:]]*'`" ] ; then
|
||||
seqstart="${num%-*}"
|
||||
seqend="${num#*-}"
|
||||
if [ $seqstart -le $seqend ] ; then
|
||||
down="$down `seq $seqstart $seqend`"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
# normalize download list, sort it and remove dupes
|
||||
down="$(echo $down | tr '\ ' '\n' | sort -n | uniq)"
|
||||
IFS=$'\n'
|
||||
|
||||
# check whether we're downloading something, else exit
|
||||
if [ -z "$down" ] ; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# starts daemon if it was not already running and download all torrents in list
|
||||
echo -n "Downloading torrent(s): "
|
||||
if ! [ "$(pidof $daemon)" ]; then
|
||||
$daemon
|
||||
for torrent in $down ; do
|
||||
# check if ID is valid and in range of results, download torrent
|
||||
if [ $torrent -ge 1 ] ; then
|
||||
if [ $torrent -le $limit ] ; then
|
||||
echo -n "$torrent "
|
||||
command="$program `echo "$r" | awk -F '|' 'NR=='$torrent'{print $2; exit}'`"
|
||||
status=$(eval "$command" 2>&1)
|
||||
if [ $? -ne 0 ] ; then
|
||||
echo -n '(failed!) '
|
||||
report="$report\n(#$torrent) $status"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
echo
|
||||
if [ -n "$report" ] ; then
|
||||
echo -n "Exited with errors:"
|
||||
echo -e "$report"
|
||||
fi
|
||||
unset IFS
|
||||
12
.scripts/tools/transadd
Executable file
12
.scripts/tools/transadd
Executable file
@@ -0,0 +1,12 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Mimeapp script for adding torrent to transmission-daemon, but will also start
|
||||
# the daemon first if not running.
|
||||
|
||||
# Optionally requires my `note` script. The sleep of 3 seconds is because the
|
||||
# transmission-daemon sometimes fails to take remote requests in its first
|
||||
# moments.
|
||||
|
||||
pgrep -x transmission-da || (transmission-daemon && note "Starting daemon..." && sleep 3 && pkill -RTMIN+7 i3blocks)
|
||||
|
||||
transmission-remote -a "$@" && note "Torrent added."
|
||||
Reference in New Issue
Block a user