Skip to content

Instantly share code, notes, and snippets.

@KeenS
Created August 6, 2015 10:16
Show Gist options
  • Save KeenS/0d92839559e47e1566d1 to your computer and use it in GitHub Desktop.
Save KeenS/0d92839559e47e1566d1 to your computer and use it in GitHub Desktop.
#!/bin/sh
parents() {
dir="$1"
while [ "${dir}" != "/" ]; do
echo "${dir}"
dir="$(dirname "${dir}")"
done
}
dav(){
curl --digest -u "${USER}:${PASSWORD}" -X "$1" "${URLBASE}/$2"
}
dav__mkdir(){
dav MKCOL "$1"
}
dav__mkdir_p(){
parents "$1" | sort | while read dir; do
dav__mkdir "${dir}"
done
}
dav_mkdir(){
recursive=false
for ARG; do
case "${ARG}" in
-p) recursive=true
shift
esac
done
if [ "${recursive}" = true ]; then
dav__mkdir_p "$1"
else
dav__mkdir "$1"
fi
}
dav__get(){
dav GET "$1"
}
dav_get(){
dav__get "$1"
}
help() {
cat <<EOF
Usage $0 <command> [options] args
Commands:
get -- get the file
mkdir -- make directory
EOF
}
subcommand_missing(){
echo "no such subcommand $1" >&2
}
main(){
command="$1"
shift
case "${command}" in
get) dav_get "$@" ;;
mkdir) dav_mkdir "$@";;
*) subcommand_missing "${command}" "$@"
exit 1
esac
}
main "$@"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment