Skip to content

Instantly share code, notes, and snippets.

@WillyPillow
Created November 5, 2014 12:45
Show Gist options
  • Save WillyPillow/93ba98dc60c32d0c7356 to your computer and use it in GitHub Desktop.
Save WillyPillow/93ba98dc60c32d0c7356 to your computer and use it in GitHub Desktop.
WebDAV Upload
#!/bin/sh
usage () { echo "$0 <src> <cadaver-args>*" >/dev/stderr; }
error () { echo "$1" >/dev/stderr; usage; exit 1; }
test $# '<' 3 || \
error "Source and cadaver arguments expected!";
src="$1"; shift;
test -r "$src" || \
error "Source argument should be a readable file or directory!";
cd "$(dirname "$src")";
src="$(basename "$src")";
root="$(pwd)";
rc="$(mktemp)";
{
find "$src" '(' -type d -a -readable ')' \
-printf 'mkcol "%p"\n';
find "$src" '(' -type f -a -readable ')' \
-printf 'cd "%h"\nlcd "%h"\n' \
-printf 'mput "%f"\n' \
-printf 'cd -\nlcd "'"$root"'"\n';
echo "quit";
} > "$rc";
cadaver -r "$rc" "$@";
rm -f "$rc";
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment