Advertisement
Guest User

Untitled

a guest
Jun 8th, 2016
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.29 KB | None | 0 0
  1. #!/bin/bash
  2. # written by sangdn 6/6/2016
  3. # to reduce stupid-time when up-to-date dependency projects
  4. # config:
  5. # set sbt_exclude/mvn_exclude to exclude build mode
  6. # set mvn = PATH[param], PaTH[param]
  7. # set mvn_options = option to build with maven command
  8. # eg:
  9. # sbt_exclude=clean
  10. # sbt=PATH[clean,compile,publishLocal]
  11. # It will execute: cd PATH; sbt compile publishLocal
  12.  
  13. sbt_exclude=clean
  14. sbt_builds="DDF:adatao[clean,compile,publishLocal];ddf-jdbc:adatao[clean,compile,publishLocal];pAnalytics"
  15. mvn_options="-DskipTests"
  16. mvn_exclude=clean
  17. mvn_builds="DDF:adatao[clean,compile,package],ddf-jdbc:adatao[clean,compile,package],pAnalytics"
  18.  
  19. current_dir=$(pwd)
  20.  
  21. function get_path(){
  22. pattern="([/.~a-zA-Z0-9_-]+)"
  23. if [[ $1 =~ $pattern ]]; then
  24. echo ${BASH_REMATCH[1]}
  25. else
  26. echo "Path Not Found !!!! Exit"
  27. exit
  28. fi
  29. }
  30. function get_branch_name(){
  31. pattern=":([a-zA-Z0-9_-]+)"
  32. if [[ $1 =~ $pattern ]]; then
  33. echo ${BASH_REMATCH[1]}
  34. else
  35. echo "master"
  36. fi
  37. }
  38. function get_build_command(){
  39. pattern="\[([a-zA-Z0-9_,]+)\]"
  40. exclude_cmd=$2
  41. if [[ $1 =~ $pattern ]]; then
  42. cmds=${BASH_REMATCH[1]}
  43. #cmds=$(sed 's/,/ /g' <<< $cmd)
  44. IFS=', ' read -r -a array <<< "$cmds"
  45. cmds=""
  46. for cmd in "${array[@]}"
  47. do
  48. if [[ ${exclude_cmd} != *"$cmd"* ]]; then
  49. cmds="$cmds $cmd"
  50. fi
  51. done
  52. else
  53. cmds="compile"
  54. fi
  55. echo $cmds
  56.  
  57. }
  58. function execute(){
  59. engine=$1
  60. builds=$2
  61. exclude=$3
  62. options=$4
  63.  
  64. IFS='; ' read -r -a array <<< "$builds"
  65. for build in "${array[@]}"
  66. do
  67. echo
  68. echo "# PROCESSING "$build
  69. path=$(get_path $build)
  70. branch=$(get_branch_name $build)
  71. cmd=$(get_build_command $build $exclude)
  72.  
  73. cd $current_dir
  74. cd $path
  75. previous_branch=$(git branch | sed -n '/\* /s///p')
  76. git checkout $branch
  77. git pull
  78. $engine $cmd $options
  79. git checkout $previous_branch
  80. done
  81. }
  82. arg1=$1
  83. if [ ! -z arg1 ]; then
  84. if [[ ${arg1} != *"sbt"* ]]; then
  85. #disable sbt build
  86. sbt_builds=""
  87. fi
  88. if [[ ${arg1} != *"mvn"* ]]; then
  89. #disable mvn build
  90. mvn_builds=""
  91. fi
  92. fi
  93.  
  94. echo " #### Execute SBT Build ###"
  95. if [ -z $sbt_builds ]; then
  96. echo "SBT Build Not Found"
  97. else
  98. execute "sbt" "$sbt_builds" "$sbt_exclude"
  99. fi
  100. echo " #### Execute Maven Build ###"
  101. if [ -z $mvn_builds ]; then
  102. echo "Maven Build Not Found"
  103. else
  104. execute "mvn" "$mvn_builds" "$mvn_exclude" "$mvn_options"
  105. fi
  106.  
  107. echo "#### END ####"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement