Release: force flag and check deps.
1. Require force flag for custom version. 2. Check installed semver and jq.
This commit is contained in:
parent
0d4221c21b
commit
a3fa7a2d1a
31
bin/release
31
bin/release
@ -1,7 +1,9 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# Release next version of product
|
# Release next version of the product
|
||||||
# Usage: release <VERSION|major|minor|patch>
|
# Usage:
|
||||||
|
# release <major|minor|patch>
|
||||||
|
# release <VERSION> --force
|
||||||
#
|
#
|
||||||
# Require:
|
# Require:
|
||||||
# - semver - https://github.com/sekati/semver
|
# - semver - https://github.com/sekati/semver
|
||||||
@ -15,9 +17,18 @@ NOCOLOR="$(tput sgr0)"
|
|||||||
function header() { echo -e "$UNDERLINE$CYAN$1$NOCOLOR\n"; }
|
function header() { echo -e "$UNDERLINE$CYAN$1$NOCOLOR\n"; }
|
||||||
function error() { echo -e "$UNDERLINE$RED$1$NOCOLOR"; }
|
function error() { echo -e "$UNDERLINE$RED$1$NOCOLOR"; }
|
||||||
|
|
||||||
|
function usage() {
|
||||||
|
echo "Usage:"
|
||||||
|
echo " `basename $0` <major|minor|patch>"
|
||||||
|
echo " `basename $0` <VERSION> --force"
|
||||||
|
echo
|
||||||
|
}
|
||||||
|
|
||||||
|
command -v semver >/dev/null 2>&1 || { error "semver not installed: see comments for instructions."; exit 1; }
|
||||||
|
command -v jq >/dev/null 2>&1 || { error "jq not installed: see comments for instructions."; exit 1; }
|
||||||
|
|
||||||
if [ "$1" == "" ]; then
|
if [ "$1" == "" ]; then
|
||||||
echo "Usage: `basename $0` <VERSION|major|minor|patch>"
|
usage
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -32,7 +43,7 @@ fi
|
|||||||
|
|
||||||
# Read existing versions
|
# Read existing versions
|
||||||
jq_ver=$(find . -maxdepth 1 -name "*.jquery.json" | xargs cat | jq -r ".version")
|
jq_ver=$(find . -maxdepth 1 -name "*.jquery.json" | xargs cat | jq -r ".version")
|
||||||
cmpnt_ver=$(find . -maxdepth 1 -name "component.json" | xargs cat | jq -r ".version")
|
cmpnt_ver=$(find . -maxdepth 1 -name "bower.json" | xargs cat | jq -r ".version")
|
||||||
pkg_ver=$(find . -maxdepth 1 -name "package.json" | xargs cat | jq -r ".version")
|
pkg_ver=$(find . -maxdepth 1 -name "package.json" | xargs cat | jq -r ".version")
|
||||||
|
|
||||||
# Non npm package
|
# Non npm package
|
||||||
@ -47,11 +58,17 @@ current_ver=
|
|||||||
|
|
||||||
# Validate current versions and determine new version
|
# Validate current versions and determine new version
|
||||||
if [ "$1" == "major" ] || [ "$1" == "minor" ] || [ "$1" == "patch" ]; then
|
if [ "$1" == "major" ] || [ "$1" == "minor" ] || [ "$1" == "patch" ]; then
|
||||||
dont_match="Versions in *.jquery.json, component.json and package.json don’t match."
|
dont_match="Versions in *.jquery.json, bower.json and package.json don’t match."
|
||||||
if [ -n "$jq_ver" ] && [ "$current_ver" != "$jq_ver" ]; then error $dont_match; fi
|
if [ -n "$jq_ver" ] && [ "$current_ver" != "$jq_ver" ]; then error $dont_match; fi
|
||||||
if [ -n "$cmpnt_ver" ] && [ "$current_ver" != "$cmpnt_ver" ]; then error $dont_match; fi
|
if [ -n "$cmpnt_ver" ] && [ "$current_ver" != "$cmpnt_ver" ]; then error $dont_match; fi
|
||||||
if [ -n "$pkg_ver" ] && [ "$current_ver" != "$pkg_ver" ]; then error $dont_match; fi
|
if [ -n "$pkg_ver" ] && [ "$current_ver" != "$pkg_ver" ]; then error $dont_match; fi
|
||||||
else
|
else
|
||||||
|
if [ "$1" != "--force" ]; then
|
||||||
|
error "Custom versions possible only with --force key."
|
||||||
|
echo
|
||||||
|
usage
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
new_ver="$1"
|
new_ver="$1"
|
||||||
fi
|
fi
|
||||||
if [ -z "$new_ver" ]; then
|
if [ -z "$new_ver" ]; then
|
||||||
@ -62,9 +79,9 @@ fi
|
|||||||
|
|
||||||
header "Releasing v$new_ver..."
|
header "Releasing v$new_ver..."
|
||||||
|
|
||||||
# Update component.json
|
# Update bower.json
|
||||||
if [ -n "$cmpnt_ver" ]; then
|
if [ -n "$cmpnt_ver" ]; then
|
||||||
sed -i '' "s^$current_ver^$new_ver^" component.json
|
sed -i '' "s^$current_ver^$new_ver^" bower.json
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Update package.json
|
# Update package.json
|
||||||
|
Loading…
Reference in New Issue
Block a user