Files
debian/prebuilds/usr/local/lib/libversion.sh
T

48 lines
1.3 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
# Ver: 1.0 by Endial Fang (endial@126.com)
#
# 版本管理函数库
# 加载依赖项
source "/usr/local/lib/liblog.sh"
# 函数列表
# 获取语义化版本
# 参数:
# $1 - 版本字符串
# $2 - 版本部分,1 为 major2 为 minor3 为 patch
# 返回值:
# 版本数组,包含 majorminor 和 patch
get_sematic_version () {
local version="${1:?version is required}"
local section="${2:?section is required}"
local -a version_sections
# 用于解析版本的正则表达式:x.y.z
local -r regex='([0-9]+)(\.([0-9]+)(\.([0-9]+))?)?'
if [[ "$version" =~ $regex ]]; then
local i=1
local j=1
local n=${#BASH_REMATCH[*]}
while [[ $i -lt $n ]]; do
if [[ -n "${BASH_REMATCH[$i]}" ]] && [[ "${BASH_REMATCH[$i]:0:1}" != '.' ]]; then
version_sections[j]="${BASH_REMATCH[$i]}"
((j++))
fi
((i++))
done
local number_regex='^[0-9]+$'
if [[ "$section" =~ $number_regex ]] && (( section > 0 )) && (( section <= 3 )); then
echo "${version_sections[$section]}"
return
else
error "Section allowed values are: 1, 2, and 3"
return 1
fi
fi
}