Skip to content
Snippets Groups Projects
Commit 0e4ccd7c authored by Mark OLESEN's avatar Mark OLESEN
Browse files

ENH: improve build naming without git

- now defaults to the project-version when absolutely nothing else is
  known

STYLE: simplify internal calling in wmakeBuildInfo
parent c45ff8ce
Branches
Tags
No related merge requests found
......@@ -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 \
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment