diff options
Diffstat (limited to 'shellrc.d/function')
-rw-r--r-- | shellrc.d/function | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/shellrc.d/function b/shellrc.d/function new file mode 100644 index 0000000..56e648a --- /dev/null +++ b/shellrc.d/function @@ -0,0 +1,66 @@ +# vim: ft=sh: + +# Run process in background +tobg() { + "$@" >/dev/null 2>&1 & +} + +# Generate random password (optionally takes length of password as first argument) +genpasswd() { + local l=$1 + [ -n "$l" ] || l=16 + tr -dc A-Za-z0-9_ < /dev/urandom | head -c "$l" | xargs +} + +# Generate random hex number of given lenght +genhex() { + if [ -z "$1" ]; then + echo "Size is required as first argument!" >&2 + return 1 + fi + tr -dc 0-9A-F < /dev/urandom | head -c "$1" | xargs +} + +# Run given command every second +dorepeat() { + while true; do + "$@" + sleep 1 + echo + done +} + +# Clear all ssh control masters +ssh-clear() { + rm -rf ~/.cache/ssh + mkdir -p ~/.cache/ssh +} + +# Chroot to bash to given path +chroot-bash() { + sudo chroot "$1" /bin/bash +} + +# Run command with inotifywait +# First argument has to be files then -- is expected and everything else +# is command to be executed when file changes. +inrun () { + ( + set -e + local TMPFS="$(mktemp --tmpdir inrun.XXXXXXXX)" + trap "rm '$TMPFS'; trap '' EXIT; exit 0" EXIT INT QUIT TERM ABRT + while [ $# -gt 0 -a "$1" != "--" ]; do + echo "$1" >> "$TMPFS" + shift + done + if [ $# -le 1 ]; then + echo "Usage: inrun FILE.. -- COMMAND" + return 1 + fi + shift + while true; do + inotifywait -qe close_write --fromfile "$TMPFS" || true + "$@" || true + done + ) +} |