Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- user=###
- pass=###
- encode() {
- local LANG=C
- local length="${#1}"
- for (( i = 0; i < length; i++ )); do
- local c="${1:i:1}"
- case $c in
- [a-zA-Z0-9.~_-//:]) printf "$c" ;;
- *) printf '%%%02X' "'$c" ;;
- esac
- done
- }
- upload_file() {
- #local ct="Content-Type: $(file -b --mime-type "$1")"
- local dst=$2
- [[ ${dst: -1} == "/" ]] && dst=$dst$(basename "$1")
- curl --silent --output /dev/null -T "$1" -u "$user:$pass" -H 'Expect:' -H "Connection: close" "$(encode "$dst")"
- echo file: "$1" "$(encode "$dst")"
- }
- upload_dir() {
- local dst=${2%/}/$(basename "$1")
- curl --silent --output /dev/null -X MKCOL -u "$user:$pass" -H 'Expect:' -H "Connection: close" "$(encode "$dst")"
- echo dir: "$(encode "$dst")"
- for name in "$1"/*; do
- upload "$name" "$dst/"
- done
- }
- upload() {
- if [ -f "$1" ]; then
- upload_file "$@"
- fi
- if [ -d "$1" ]; then
- upload_dir "$@"
- fi
- }
- shopt -s nullglob dotglob
- upload "${1%/}" "$2"
Add Comment
Please, Sign In to add comment