uploadToMaven.sh 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. #!/bin/bash
  2. #############################################
  3. #
  4. # Usage
  5. # uploadAllToMaven path/of/dist/maven https://api.bintray.com/maven/riccardo/sandbox-maven/ riccardo $BINTRAY_PASSWORD gitrepo license
  6. # Note: gitrepo and license are needed only when uploading to bintray if you want to create missing packages automatically
  7. # gitrepo must be a valid source repository
  8. # license must be a license supported by bintray eg "BSD 3-Clause"
  9. # or
  10. # uploadAllToMaven path/of/dist/maven $GITHUB_PACKAGE_REPOSITORY user password
  11. #
  12. #############################################
  13. root="`dirname ${BASH_SOURCE[0]}`"
  14. source $root/bintray.sh
  15. set -e
  16. function uploadToMaven {
  17. file="$1"
  18. destfile="$2"
  19. repourl="$3"
  20. user="$4"
  21. password="$5"
  22. srcrepo="$6"
  23. license="$7"
  24. auth=""
  25. if [ "$user" != "token" ];
  26. then
  27. echo "Upload with username $user and password"
  28. auth="-u$user:$password"
  29. else
  30. echo "Upload with token"
  31. auth="-H \"Authorization: token $password\""
  32. fi
  33. if [[ $repourl == https\:\/\/api.bintray.com\/* ]];
  34. then
  35. package="`dirname $destfile`"
  36. version="`basename $package`"
  37. package="`dirname $package`"
  38. package="`basename $package`"
  39. if [ "$user" = "" -o "$password" = "" ];
  40. then
  41. echo "Error! You need username and password to upload to bintray"
  42. exit 1
  43. fi
  44. echo "Detected bintray"
  45. bintrayRepo="${repourl/https\:\/\/api.bintray.com\/maven/}"
  46. echo "Create package on $bintrayRepo"
  47. bintray_createPackage $bintrayRepo $package $user $password $srcrepo $license
  48. repourl="$repourl/$package"
  49. fi
  50. cmd="curl -T \"$file\" $auth \
  51. \"$repourl/$destfile\" \
  52. -vvv"
  53. echo "Run $cmd"
  54. eval "$cmd"
  55. }
  56. export -f uploadToMaven
  57. function uploadAllToMaven {
  58. path="$1"
  59. cdir="$PWD"
  60. cd "$path"
  61. files="`find . \( -name "*.jar" -o -name "*.pom" \) -type f -print`"
  62. IFS="
  63. "
  64. set -f
  65. for art in $files; do
  66. art="${art:2}"
  67. uploadToMaven "$art" "$art" ${@:2}
  68. done
  69. set +f
  70. unset IFS
  71. cd "$cdir"
  72. }