[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/opam-switch-mode b58a37ba5f 1/4: feat: Add release.sh scri
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/opam-switch-mode b58a37ba5f 1/4: feat: Add release.sh script |
Date: |
Tue, 20 Jun 2023 19:01:32 -0400 (EDT) |
branch: elpa/opam-switch-mode
commit b58a37ba5f10c1c6a034a63982cd349170181513
Author: Erik Martin-Dorel <erik@martin-dorel.org>
Commit: Erik Martin-Dorel <erik@martin-dorel.org>
feat: Add release.sh script
---
opam-switch-mode.el | 2 +-
release.sh | 36 ++++++++++++++++++++++++++++++++++++
2 files changed, 37 insertions(+), 1 deletion(-)
diff --git a/opam-switch-mode.el b/opam-switch-mode.el
index f947de6f1e..83528680ae 100644
--- a/opam-switch-mode.el
+++ b/opam-switch-mode.el
@@ -7,7 +7,7 @@
;; Maintainer: proof-general-maintainers@groupes.renater.fr
;; URL: https://github.com/ProofGeneral/opam-switch-mode
;; Package-Requires: ((emacs "25.1"))
-;; Version: 1.0-git
+;; Version: 1.1-git
;;
;; SPDX-License-Identifier: GPL-3.0-or-later
;;
diff --git a/release.sh b/release.sh
new file mode 100755
index 0000000000..f1d53834aa
--- /dev/null
+++ b/release.sh
@@ -0,0 +1,36 @@
+#!/usr/bin/env bash
+
+set -eu
+
+perl_replace() {
+ local str1="$1"
+ local str2="$2"
+ perl -wpe 'BEGIN {$str1=shift @ARGV; $str2=shift @ARGV;};
s/$str1/$str2/g;' "$str1" "$str2"
+}
+
+do_release() {
+ file=opam-switch-mode.el
+ git checkout master
+ line=$(grep "$file" -e Version:)
+ version=${line/*Version: /}
+ release=${version%-git}
+ next=$(perl -wne 'my ($major,$minor) = $_ =~ m/^(.+)\.(.+)$/;
print("$major.", $minor+1, "-git");' <<< "$release")
+ line_release=$(perl_replace "$version" "$release" <<<"$line")
+ line_next=$(perl_replace "$version" "$next" <<<"$line")
+ cp -fv "$file" "$file~"
+
+ perl_replace "$line" "$line_release" <"$file~" > "$file"
+ git add -vu
+ git commit -m "chore: Release $release"
+ git tag -s "$release" -m "Version $release"
+
+ perl_replace "$line" "$line_next" <"$file~" > "$file"
+ git branch -D next || true
+ git checkout -b next
+ git add -vu
+ git commit -m "chore: Prepare next dev cycle"
+ git checkout master
+ echo >&2 "Ready to: git push $(git remote) master $release"
+ echo >&2 "Then, do: git merge next"
+}
+do_release