Harden release validation
This commit is contained in:
@@ -11,32 +11,12 @@ narratio_release_fail() {
|
||||
}
|
||||
|
||||
narratio_release_validate_version() {
|
||||
version=$1
|
||||
case $version in
|
||||
v*.*.*) ;;
|
||||
*) return 1 ;;
|
||||
case $1 in
|
||||
*'
|
||||
'*) return 1 ;;
|
||||
esac
|
||||
components=${version#v}
|
||||
if [ "$components" = "$version" ]; then
|
||||
return 1
|
||||
fi
|
||||
|
||||
previous_ifs=$IFS
|
||||
IFS=.
|
||||
set -- $components
|
||||
IFS=$previous_ifs
|
||||
if [ "$#" -ne 3 ]; then
|
||||
return 1
|
||||
fi
|
||||
for component in "$@"; do
|
||||
case $component in
|
||||
0 | [1-9]*) ;;
|
||||
*) return 1 ;;
|
||||
esac
|
||||
case $component in
|
||||
*[!0-9]*) return 1 ;;
|
||||
esac
|
||||
done
|
||||
printf '%s\n' "$1" |
|
||||
grep -Eq '^v(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)\.(0|[1-9][0-9]*)$'
|
||||
}
|
||||
|
||||
narratio_release_repo_root() (
|
||||
|
||||
Reference in New Issue
Block a user