Skip to content

Instantly share code, notes, and snippets.

@jwerle
Created March 30, 2022 14:34
Show Gist options
  • Save jwerle/5f937115818b76712efca575c73b8a9f to your computer and use it in GitHub Desktop.
Save jwerle/5f937115818b76712efca575c73b8a9f to your computer and use it in GitHub Desktop.
#!/usr/bin/env bash
declare -a tags=($(git tag -l))
for tag in "${tags[@]}"; do
## checkout current tag
git checkout "$tag"
## checkout `setup.sh` from master branch with latest changes
git checkout master -- setup.sh
## get current version
declare version="$(bpkg package version)"
## version replacement regex for `sed(1)`
declare regex="s/VERSION=.*/VERSION=\"$version\"/g"
## set versions in files
sed -i "$regex" bpkg.sh
sed -i "$regex" setup.sh
## remove current tag
git tag -d "$tag"
## amend HEAD for current tag
git commit -a --amend --no-edit
## retag
git tag "$tag"
## force push update
git push origin "$tag" -f
done
git checkout master
@Potherca
Copy link

My fix would be to only grab the version (using tr -dc) and add a manual check before commit/push:

diff --git a/fix-tag-history.sh b/fix-tag-history.sh
index 1d0d93d..32fc2b6 100644
--- a/fix-tag-history.sh
+++ b/fix-tag-history.sh
@@ -8,12 +8,18 @@ for tag in "${tags[@]}"; do
   ## checkout `setup.sh` from master branch with latest changes
   git checkout master -- setup.sh
   ## get current version
-  declare version="$(bpkg package version)"
+  declare version="$(echo "$(bpkg package version | tr -dc '0-9.')")"
   ## version replacement regex for `sed(1)`
   declare regex="s/VERSION=.*/VERSION=\"$version\"/g"
   ## set versions in files
   sed -i "$regex" bpkg.sh
   sed -i "$regex" setup.sh
+
+  git diff
+
+  echo 'Please check the repository content'
+  read -r -s -n 1 -p "<Press any key to continue>"
+  
   ## remove current tag
   git tag -d "$tag"
   ## amend HEAD for current tag

@jwerle
Copy link
Author

jwerle commented Jun 13, 2022

okay I hope bpkg/bpkg#151 fixes this

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment