66 lines
1.6 KiB
Bash
Executable File
66 lines
1.6 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -eu
|
|
|
|
## General file setup
|
|
# $1 bump type
|
|
# $2 path to chart if one chart only
|
|
|
|
|
|
## Function details
|
|
# $1 - semver string
|
|
# $2 - level to incr {patch,minor,major} - patch by default
|
|
function incr_semver() {
|
|
IFS='.' read -ra ver <<< "$1"
|
|
[[ "${#ver[@]}" -ne 3 ]] && echo "Invalid semver string" && return 1
|
|
[[ "$#" -eq 1 ]] && level='patch' || level=$2
|
|
|
|
patch=${ver[2]}
|
|
minor=${ver[1]}
|
|
major=${ver[0]}
|
|
|
|
case $level in
|
|
patch)
|
|
patch=$((patch+1))
|
|
;;
|
|
minor)
|
|
patch=0
|
|
minor=$((minor+1))
|
|
;;
|
|
major)
|
|
patch=0
|
|
minor=0
|
|
major=$((major+1))
|
|
;;
|
|
*)
|
|
echo "Invalid level passed"
|
|
return 2
|
|
esac
|
|
echo "$major.$minor.$patch"
|
|
}
|
|
|
|
BUMPTYPE=${1}
|
|
if [ -z ${2+x} ]; then
|
|
for train in dependency incubator stable enterprise; do
|
|
for chart in charts/${train}/*; do
|
|
if [ -d "${chart}" ]; then
|
|
if [ -f "${chart}/Chart.yaml" ]; then
|
|
echo "Bumping version for ${train}/${chart}"
|
|
OLDVER=$(cat ${chart}/Chart.yaml | grep "^version: ")
|
|
OLDVER=${OLDVER#version: }
|
|
NEWVER=$(incr_semver ${OLDVER} ${BUMPTYPE})
|
|
sed -i "s|^version:.*|version: ${NEWVER}|g" ${chart}/Chart.yaml
|
|
fi
|
|
fi
|
|
done
|
|
done
|
|
else
|
|
chart=${2}
|
|
if [ -d "${chart}" ]; then
|
|
echo "Bumping version for ${chart}"
|
|
OLDVER=$(cat ${chart}/Chart.yaml | grep "^version: ")
|
|
OLDVER=${OLDVER#version: }
|
|
NEWVER=$(incr_semver ${OLDVER} ${BUMPTYPE})
|
|
sed -i "s|^version:.*|version: ${NEWVER}|g" ${chart}/Chart.yaml
|
|
fi
|
|
fi
|