summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSlávek Banko <slavek.banko@axis.cz>2023-06-05 20:05:55 +0200
committerSlávek Banko <slavek.banko@axis.cz>2023-06-18 12:21:19 +0200
commit1ccd5c4fa1cc4147464572b463876643e5672008 (patch)
treec2451a741430837f7f887e5cb9ebc9fe9395b9ba
parent4eebab4010c5d61f58dacfae7d7bed752d4424d9 (diff)
downloadscripts-1ccd5c4fa1cc4147464572b463876643e5672008.tar.gz
scripts-1ccd5c4fa1cc4147464572b463876643e5672008.zip
create_tarball: Add support for creating tarballs from head on a git tag.
Signed-off-by: Slávek Banko <slavek.banko@axis.cz>
-rwxr-xr-xcreate_all_tarballs20
-rwxr-xr-xcreate_tarball34
2 files changed, 41 insertions, 13 deletions
diff --git a/create_all_tarballs b/create_all_tarballs
index 1434f77..7caf7bd 100755
--- a/create_all_tarballs
+++ b/create_all_tarballs
@@ -70,12 +70,18 @@ cd `git rev-parse --show-toplevel`
# Check remote branch
branch=`git symbolic-ref -q HEAD | sed "s|^refs/heads/||"`
if [[ -z "$branch" ]]; then
- branch=`git branch --contains HEAD | egrep -v "no branch|detached" | head -n1 | cut -c 3-`
+ branch_detached=`git branch --contains HEAD | egrep "^\* \(HEAD detached at" | head -n1 | sed "s|^\* (HEAD detached at \([^)]*\)).*$|\1|"`
+ branch=`git tag | grep -Fx "${branch_detached}"`
+fi
+if [[ -z "$branch" ]]; then
+ branch=`git branch -r --contains HEAD | egrep -v "no branch|detached" | head -n1 | cut -c 3-`
+ branch=${branch#origin/}
fi
if [[ -z "$branch" ]] ||
- [[ -z "`git rev-parse --symbolic-full-name --remotes=\"*/$branch\"`" ]]; then
- echo "There is not active upstream branch. Exiting..."
- exit 1
+ ( [[ -z "`git rev-parse --symbolic-full-name --remotes=\"*/$branch\"`" ]] &&
+ [[ -z "`git tag | grep -Fx \"${branch}\"`" ]] ); then
+ echo "There is not active upstream branch. Exiting."
+ exit 1
fi
# Set target version
@@ -106,12 +112,18 @@ if [ "$TARGET" != "${TARGET#3.5.}" ]; then
else
targetBranch=master
fi
+ if [ "$branch" = "v${TARGET}" ]; then
+ targetBranch=v${TARGET}
+ fi
else
if [ "$TARGET" != "${TARGET%.0}" ]; then
targetBranch=master
else
targetBranch=r${TARGET%.*}.x
fi
+ if [ "$branch" = "r${TARGET}" ]; then
+ targetBranch=r${TARGET}
+ fi
fi
if [ "$branch" != "$targetBranch" ]; then
echo "Target $TARGET is not valid on $branch branch. Exiting."
diff --git a/create_tarball b/create_tarball
index 6bc534e..af991b0 100755
--- a/create_tarball
+++ b/create_tarball
@@ -30,12 +30,18 @@ fi
# Check remote branch
branch=`git symbolic-ref -q HEAD | sed "s|^refs/heads/||"`
if [[ -z "$branch" ]]; then
- branch=`git branch --contains HEAD | egrep -v "no branch|detached" | head -n1 | cut -c 3-`
+ branch_detached=`git branch --contains HEAD | egrep "^\* \(HEAD detached at" | head -n1 | sed "s|^\* (HEAD detached at \([^)]*\)).*$|\1|"`
+ branch=`git tag | grep -Fx "${branch_detached}"`
+fi
+if [[ -z "$branch" ]]; then
+ branch=`git branch -r --contains HEAD | egrep -v "no branch|detached" | head -n1 | cut -c 3-`
+ branch=${branch#origin/}
fi
if [[ -z "$branch" ]] ||
- [[ -z "`git rev-parse --symbolic-full-name --remotes=\"*/$branch\"`" ]]; then
- echo "There is not active upstream branch. Exiting..."
- exit 1
+ ( [[ -z "`git rev-parse --symbolic-full-name --remotes=\"*/$branch\"`" ]] &&
+ [[ -z "`git tag | grep -Fx \"${branch}\"`" ]] ); then
+ echo "There is not active upstream branch. Exiting."
+ exit 1
fi
# Get submodule name
@@ -82,12 +88,18 @@ if [ "$TARGET" != "${TARGET#3.5.}" ]; then
else
targetBranch=master
fi
+ if [ "$branch" = "v${TARGET}" ]; then
+ targetBranch=v${TARGET}
+ fi
else
if [ "$TARGET" != "${TARGET%.0}" ]; then
targetBranch=master
else
targetBranch=r${TARGET%.*}.x
fi
+ if [ "$branch" = "r${TARGET}" ]; then
+ targetBranch=r${TARGET}
+ fi
fi
if [ "$branch" != "$targetBranch" ]; then
echo "Target $TARGET is not valid on $branch branch. Exiting."
@@ -128,11 +140,15 @@ if [[ -n "$target_tag" ]] && \
fi
# Calculate version
-tag=`git tag | \
- sed "s|^\([^0-9]\)|\1.|" | sort -t. -k 1,1nr -k 2,2nr -k 3,3nr -k 4,4nr -k 5,5nr | sed "s|^\([^0-9]\)\.|\1|" | \
- while read t; do \
- git branch --contains $t | cut -c 3- | grep -x "$branch" >/dev/null && \
- echo "$t..HEAD" && break; done`
+if [[ -z "$target_tag" ]]; then
+ tag=`git tag | \
+ sed "s|^\([^0-9]\)|\1.|" | sort -t. -k 1,1nr -k 2,2nr -k 3,3nr -k 4,4nr -k 5,5nr | sed "s|^\([^0-9]\)\.|\1|" | \
+ while read t; do \
+ git branch --contains $t | cut -c 3- | grep -x "$branch" >/dev/null && \
+ echo "$t..HEAD" && break; done`
+else
+ tag="$target_tag..HEAD"
+fi
count=`git log $tag --pretty=oneline | wc -l`