Guest User

Untitled

a guest
Jul 21st, 2018
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.01 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. user=###
  4. pass=###
  5.  
  6. encode() {
  7. local LANG=C
  8. local length="${#1}"
  9. for (( i = 0; i < length; i++ )); do
  10. local c="${1:i:1}"
  11. case $c in
  12. [a-zA-Z0-9.~_-//:]) printf "$c" ;;
  13. *) printf '%%%02X' "'$c" ;;
  14. esac
  15. done
  16. }
  17.  
  18. upload_file() {
  19. #local ct="Content-Type: $(file -b --mime-type "$1")"
  20. local dst=$2
  21. [[ ${dst: -1} == "/" ]] && dst=$dst$(basename "$1")
  22. curl --silent --output /dev/null -T "$1" -u "$user:$pass" -H 'Expect:' -H "Connection: close" "$(encode "$dst")"
  23. echo file: "$1" "$(encode "$dst")"
  24. }
  25.  
  26. upload_dir() {
  27. local dst=${2%/}/$(basename "$1")
  28. curl --silent --output /dev/null -X MKCOL -u "$user:$pass" -H 'Expect:' -H "Connection: close" "$(encode "$dst")"
  29. echo dir: "$(encode "$dst")"
  30.  
  31. for name in "$1"/*; do
  32. upload "$name" "$dst/"
  33. done
  34. }
  35.  
  36. upload() {
  37. if [ -f "$1" ]; then
  38. upload_file "$@"
  39. fi
  40. if [ -d "$1" ]; then
  41. upload_dir "$@"
  42. fi
  43. }
  44.  
  45. shopt -s nullglob dotglob
  46. upload "${1%/}" "$2"
Add Comment
Please, Sign In to add comment