parse_hpcc_chart.sh 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. #!/bin/bash
  2. #
  3. # Common utilities used by tools for automating tagging and release
  4. #
  5. set -e
  6. function parse_chart()
  7. {
  8. local _chart=$1
  9. HPCC_PROJECT=$(grep -m1 '^name:' $_chart | sed "s/^name: *//")
  10. HPCC_NAME="Helm Chart for $HPCC_PROJECT"
  11. HPCC_VERSION=$(grep -m1 '^version:' $_chart | sed "s/^version: *//")
  12. HPCC_MAJOR=$(echo $HPCC_VERSION | awk 'BEGIN {FS="[.-]"}; {print $1};')
  13. HPCC_MINOR=$(echo $HPCC_VERSION | awk 'BEGIN {FS="[.-]"}; {print $2};')
  14. HPCC_POINT=$(echo $HPCC_VERSION | awk 'BEGIN {FS="[.-]"}; {print $3};')
  15. HPCC_MATURITY=$(echo $HPCC_VERSION | awk 'BEGIN {FS="[-.+]"}; {print $4};' | sed 's/[0-9]//g')
  16. HPCC_SEQUENCE=$(echo $HPCC_VERSION | awk 'BEGIN {FS="[-.+]"}; {print $4};' | sed 's/[^0-9]//g')
  17. # translate maturity/sequence to what go_rc/go_gold understand
  18. if [ -z "$HPCC_MATURITY" ] ; then
  19. HPCC_MATURITY=release
  20. fi
  21. # translate maturity to what go_rc/go_gold understand
  22. if [ -z "$HPCC_SEQUENCE" ] ; then
  23. HPCC_SEQUENCE=1
  24. fi
  25. echo "file $VERSIONFILE"
  26. echo "PROJECT $HPCC_PROJECT"
  27. echo "VERSION $HPCC_VERSION"
  28. echo "MAJOR $HPCC_MAJOR"
  29. echo "MINOR $HPCC_MINOR"
  30. echo "POINT $HPCC_POINT"
  31. echo "MATURITY $HPCC_MATURITY"
  32. echo "SEQ $HPCC_SEQUENCE"
  33. if ! `echo $HPCC_SEQUENCE | grep -Eq ^[0-9]+$`; then
  34. echo "Error: HPCC_SEQUENCE not an Integer"
  35. echo "-- possibly on branch using old versioning scheme"
  36. exit 2
  37. fi
  38. }
  39. function update_chart_file()
  40. {
  41. # Update the Chart.yaml file
  42. local _chart=$1
  43. local _new_maturity=$2
  44. local _new_point=$3
  45. local _new_sequence=$4
  46. local _new_minor=$5
  47. if [ -z "$_new_minor" ] ; then
  48. _new_minor=$HPCC_MINOR
  49. fi
  50. if [ "$_new_maturity" == "release" ] ; then
  51. local _v=${HPCC_MAJOR}.${_new_minor}.${_new_point}
  52. else
  53. local _v=${HPCC_MAJOR}.${_new_minor}.${_new_point}-${_new_maturity}${_new_sequence}
  54. fi
  55. if [ -n "$VERBOSE" ] ; then
  56. echo sed -E \
  57. -e "s/^version: .*$/version: $_v/" \
  58. -e "s/^appVersion: .*$/appVersion: $_v/" \
  59. -e "s/helmVersion: .*$/helmVersion: $_v/" \
  60. -i.bak $_chart
  61. fi
  62. if [ -z "$DRYRUN" ] ; then
  63. sed -E \
  64. -e "s/^version: .*$/version: $_v/" \
  65. -e "s/^appVersion: .*$/appVersion: $_v/" \
  66. -e "s/helmVersion: .*$/helmVersion: $_v/" \
  67. -i.bak $_chart
  68. else
  69. sed -E \
  70. -e "s/^version: .*$/version: $_v/" \
  71. -e "s/^appVersion: .*$/appVersion: $_v/" \
  72. -e "s/helmVersion: .*$/helmVersion: $_v/" \
  73. $_chart > $_chart.bak
  74. fi
  75. CHART_CHANGED=0
  76. diff -y --suppress-common-lines $_chart $_chart.bak || CHART_CHANGED=1
  77. rm -f $_chart.bak
  78. }