#!/usr/bin/env bash set -euo pipefail ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" BASE_FILE="$ROOT_DIR/VERSION_BASE" SEQ_FILE="$ROOT_DIR/BUILD_SEQ" VER_FILE="$ROOT_DIR/VERSION" # 初始化基础版本 if [[ ! -f "$BASE_FILE" ]]; then if [[ -f "$VER_FILE" ]]; then cur="$(tr -d ' \n\r\t' < "$VER_FILE")" # 取 +build 之前的基础版本 base="${cur%%+build.*}" [[ -z "$base" ]] && base="0.1.0" echo "$base" > "$BASE_FILE" else echo "0.1.0" > "$BASE_FILE" fi fi # 初始化构建序号 if [[ ! -f "$SEQ_FILE" ]]; then echo "0" > "$SEQ_FILE" fi base="$(tr -d ' \n\r\t' < "$BASE_FILE")" seq="$(tr -d ' \n\r\t' < "$SEQ_FILE")" if ! [[ "$seq" =~ ^[0-9]+$ ]]; then seq=0 fi seq=$((seq + 1)) new_ver="${base}+build.${seq}" echo "$seq" > "$SEQ_FILE" echo "$new_ver" > "$VER_FILE" echo "$new_ver"