| UPSTREAM_REMOTE=origin | |
| source ~/.config/linux-stable-queue | |
| # Get base version, i.e. the Linus stable release that a version is based on | |
| base_version() { | |
| local ver | |
| ver="${1%-rc*}" | |
| case "$ver" in | |
| 2.6.*.* | [3-9].*.* | ??.*.*) | |
| ver="${ver%.*}" | |
| ;; | |
| esac | |
| echo "$ver" | |
| } | |
| add_update() { | |
| local base update | |
| base="$(base_version "$1")" | |
| update="${1#$base.}" | |
| if [ "$update" = "$1" ]; then | |
| update=0 | |
| fi | |
| update="$((update + $2))" | |
| if [ $update = 0 ]; then | |
| echo "$base" | |
| else | |
| echo "$base.$update" | |
| fi | |
| } | |
| # Get last stable update version (or Linus stable release, for .1) | |
| last_update() { | |
| add_update "$1" -1 | |
| } | |
| # Get next stable update version | |
| next_update() { | |
| add_update "$1" 1 | |
| } | |
| _validate_base_ver() { | |
| for base_ver in $STABLE_BASE_VERSIONS; do | |
| if [ "$1" = "$base_ver" ]; then | |
| return 0 | |
| fi | |
| done | |
| echo >&2 "E: Invalid base version: $1" | |
| return 1 | |
| } | |
| # Get patch queue directory for a given base version | |
| get_queue() { | |
| _validate_base_ver "$1" || return 1 | |
| local queue="$STABLE_QUEUES/queue-$1" | |
| mkdir -p "$queue" | |
| echo "$queue" | |
| } | |
| # Get git repo directory for a given base version | |
| get_git() { | |
| _validate_base_ver "$1" || return 1 | |
| local var_name | |
| var_name=STABLE_GIT_${1//./_} | |
| eval echo \$$var_name | |
| } |