33 lines
691 B
Bash
Executable file
33 lines
691 B
Bash
Executable file
#!/bin/bash
|
|
|
|
bail() {
|
|
echo fail: $*
|
|
exit 1
|
|
}
|
|
|
|
# test
|
|
if [[ "$1" = "-t" ]]; then
|
|
prefix=echo
|
|
shift
|
|
fi
|
|
|
|
[[ "$PUBLISH_HOST" != "" ]] && [[ "$publish_host" = "" ]] && publish_host="$PUBLISH_HOST"
|
|
[[ "$PUBLISH_DIR" != "" ]] && [[ "$publish_dir" = "" ]] && publish_dir="$PUBLISH_DIR"
|
|
|
|
orig_pwd="$PWD"
|
|
if [[ ! -f .publish ]]; then
|
|
while ! [[ -f .publish ]]; do
|
|
[[ "$PWD" = "/" ]] && bail "no .publish file found"
|
|
cd ..
|
|
done
|
|
subdir="${orig_pwd#$PWD/}"
|
|
fi
|
|
|
|
source .publish
|
|
|
|
cd $orig_pwd
|
|
if [[ $# -eq 0 ]]; then
|
|
$prefix rsync -aKv * "$publish_host":"${publish_dir}${subdir}"
|
|
else
|
|
$prefix rsync -aKv "$@" "$publish_host":"${publish_dir}${subdir}"
|
|
fi
|