#!/usr/bin/env zsh # YES_ZSH NO_BASH NO_DASH NO_ASH # TODO: portable way of dodging aliases to allow other shell support? autosync() { ### @- ### combine `inotifywait` and `rsync`. ### this is sometimes nicer than `ssh`-ing into a server and running `vim` remotely. target="$1" shift # as a reminder not to get the argument order mixed up: echo -E "rsyncing to $target" >&2 while inotifywait -q -e create,modify "$@"; do \rsync -rtl "$@" "$target" done } [ -n "${preload+-}" ] || autosync "$@"