ENH: improve build naming without git
- now defaults to the project-version when absolutely nothing else is known STYLE: simplify internal calling in wmakeBuildInfo
This commit is contained in:
parent
c45ff8cefc
commit
0e4ccd7cef
@ -30,6 +30,7 @@
|
||||
#
|
||||
# Environment
|
||||
# - WM_PROJECT_DIR
|
||||
# - WM_PROJECT_VERSION
|
||||
# - WM_DIR (unset defaults to WM_PROJECT_DIR/wmake)
|
||||
#
|
||||
# Note
|
||||
@ -179,6 +180,13 @@ declare -A metaInfo
|
||||
#
|
||||
getMakeInfo()
|
||||
{
|
||||
if [ "${#makeInfo[*]}" -eq 4 ]
|
||||
then
|
||||
##echo "use cached value for make info" 1>&2
|
||||
return 0
|
||||
fi
|
||||
##echo "get make info" 1>&2
|
||||
|
||||
local api patch build branch
|
||||
makeInfo=()
|
||||
|
||||
@ -206,7 +214,6 @@ getMakeInfo()
|
||||
makeInfo[patch]="${patch:-0}" # default is 0
|
||||
makeInfo[branch]="$branch"
|
||||
makeInfo[build]="$build"
|
||||
makeInfo[cached]=true
|
||||
}
|
||||
|
||||
|
||||
@ -224,6 +231,13 @@ getMakeInfo()
|
||||
#
|
||||
getMetaInfo()
|
||||
{
|
||||
if [ "${#metaInfo[*]}" -eq 4 ]
|
||||
then
|
||||
##echo "use cached value for meta info" 1>&2
|
||||
return 0
|
||||
fi
|
||||
##echo "get meta info" 1>&2
|
||||
|
||||
local api patch build branch
|
||||
metaInfo=()
|
||||
|
||||
@ -242,7 +256,6 @@ getMetaInfo()
|
||||
metaInfo[patch]="${patch:-0}" # default is 0
|
||||
metaInfo[branch]="$branch"
|
||||
metaInfo[build]="$build"
|
||||
metaInfo[cached]=true
|
||||
}
|
||||
|
||||
|
||||
@ -257,14 +270,14 @@ getMetaInfo()
|
||||
#
|
||||
getApi()
|
||||
{
|
||||
[ -n "${makeInfo[cached]}" ] || getMakeInfo
|
||||
getMakeInfo
|
||||
|
||||
# Local copy
|
||||
local api="${makeInfo[api]}"
|
||||
|
||||
if [ -z "$api" ]
|
||||
then
|
||||
[ -n "${metaInfo[cached]}" ] || getMetaInfo
|
||||
getMetaInfo
|
||||
api="${metaInfo[api]}"
|
||||
fi
|
||||
|
||||
@ -284,7 +297,7 @@ getApi()
|
||||
#
|
||||
getPatchLevel()
|
||||
{
|
||||
[ -n "${metaInfo[cached]}" ] || getMetaInfo
|
||||
getMetaInfo
|
||||
|
||||
# Local copy
|
||||
local value="${metaInfo[patch]}"
|
||||
@ -301,10 +314,8 @@ getPatchLevel()
|
||||
# Report make info
|
||||
reportMakeInfo()
|
||||
{
|
||||
local key
|
||||
|
||||
[ -n "${makeInfo[cached]}" ] || getMakeInfo
|
||||
[ -n "${metaInfo[cached]}" ] || getMetaInfo
|
||||
getMakeInfo
|
||||
getMetaInfo
|
||||
|
||||
local patch="${metaInfo[patch]}" # <- From meta-info only
|
||||
makeInfo[patch]="${patch:=0}" # Extra safety
|
||||
@ -320,9 +331,7 @@ reportMakeInfo()
|
||||
# Report meta info
|
||||
reportMetaInfo()
|
||||
{
|
||||
local key
|
||||
|
||||
[ -n "${metaInfo[cached]}" ] || getMetaInfo
|
||||
getMetaInfo
|
||||
|
||||
local patch="${metaInfo[patch]}" # <- From meta-info only
|
||||
metaInfo[patch]="${patch:=0}" # Extra safety
|
||||
@ -343,14 +352,26 @@ checkDiff()
|
||||
local verbose="$1"
|
||||
local key diff
|
||||
|
||||
[ -n "${makeInfo[cached]}" ] || getMakeInfo
|
||||
[ -n "${metaInfo[cached]}" ] || getMetaInfo
|
||||
getMakeInfo
|
||||
getMetaInfo
|
||||
|
||||
for key in api patch branch build
|
||||
do
|
||||
if [ "${makeInfo[$key]}" != "${metaInfo[$key]}" ]
|
||||
then
|
||||
diff="$diff $key"
|
||||
case "$key" in
|
||||
(branch | build)
|
||||
# Only trigger when make info (branch, build) are non-empty
|
||||
if [ -n "${makeInfo[$key]}" ]
|
||||
then
|
||||
diff="$diff $key"
|
||||
fi
|
||||
|
||||
;;
|
||||
(*)
|
||||
diff="$diff $key"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
done
|
||||
|
||||
@ -365,7 +386,8 @@ checkDiff()
|
||||
done
|
||||
fi
|
||||
|
||||
test -z "$diff"
|
||||
# No diffs, but never permit entirely empty values for build.
|
||||
test -z "$diff" || test -z "${makeInfo[build]}${metaInfo[build]}"
|
||||
}
|
||||
|
||||
|
||||
@ -374,8 +396,8 @@ checkDiff()
|
||||
#
|
||||
performUpdate()
|
||||
{
|
||||
[ -n "${makeInfo[cached]}" ] || getMakeInfo
|
||||
[ -n "${metaInfo[cached]}" ] || getMetaInfo
|
||||
getMakeInfo
|
||||
getMetaInfo
|
||||
|
||||
# Local copies of the make info
|
||||
local api="${makeInfo[api]}"
|
||||
@ -389,6 +411,9 @@ performUpdate()
|
||||
[ -n "$branch" ] || branch="${metaInfo[branch]}"
|
||||
[ -n "$build" ] || build="${metaInfo[build]}"
|
||||
|
||||
# Fallback to WM_PROJECT_VERSION alone
|
||||
[ -n "$build" ] || build="${WM_PROJECT_VERSION:-unknown}"
|
||||
|
||||
local outputFile
|
||||
|
||||
# build-info
|
||||
@ -447,8 +472,8 @@ performFiltering()
|
||||
exit 2
|
||||
}
|
||||
|
||||
[ -n "${makeInfo[cached]}" ] || getMakeInfo
|
||||
[ -n "${metaInfo[cached]}" ] || getMetaInfo
|
||||
getMakeInfo
|
||||
getMetaInfo
|
||||
|
||||
# Local copies of the make info
|
||||
local api="${makeInfo[api]}"
|
||||
@ -479,7 +504,8 @@ performFiltering()
|
||||
if [ -z "$build" ]
|
||||
then
|
||||
build="${metaInfo[build]}"
|
||||
build="nogit${build:+-$build}"
|
||||
# Fallback to WM_PROJECT_VERSION
|
||||
build="${build:-${WM_PROJECT_VERSION:-unknown}}"
|
||||
fi
|
||||
|
||||
sed \
|
||||
|
Loading…
Reference in New Issue
Block a user