1
1
#! /usr/bin/env bash
2
2
3
- if [ " $# " -lt 1 ]; then
4
- echo " Missing new version"
5
- exit 1
6
- fi
7
-
8
3
SCRIPT_DIR=$( cd -- " $( dirname -- " ${BASH_SOURCE[0]} " ) " & > /dev/null && pwd)
9
4
PROJECT_DIR=$( dirname " $SCRIPT_DIR " )
10
5
NEW_VERSION=" $1 "
11
6
12
- echo " Updating version in Cargo.toml"
13
- sed -i ' s/^version\s*=\s*".*"/version = "' " $NEW_VERSION " ' "/' " $PROJECT_DIR /Cargo.toml"
7
+ # Fetch current version
8
+ CURRENT_VERSION=$( sed -n ' /version\s*=\s*"\([^"]*\)"/{s//\1/p;q}' " $PROJECT_DIR /Cargo.toml" )
9
+
10
+ # Fetch new version from changelog
11
+ NEW_VERSION=$( grep -m1 ' ^##' " $PROJECT_DIR " /CHANGELOG.md | grep -o " \[[0-9]\+.[0-9]\+.[0-9]\+\]" | tr -d ' []' )
12
+
13
+ if [ -z " $NEW_VERSION " ]; then
14
+ echo " Could not fetch version from CHANGELOG.md; you probably made a mistake."
15
+ exit 1
16
+ fi
17
+
18
+ if [ " $CURRENT_VERSION " \> " $NEW_VERSION " ]; then
19
+ echo " New version number must be higher than current version: $CURRENT_VERSION "
20
+ echo " Create a new changelog entry before running this script!"
21
+ exit 1
22
+ fi
23
+
24
+ if [ " $CURRENT_VERSION " == " $NEW_VERSION " ]; then
25
+ echo " Cargo.toml was already at $NEW_VERSION "
26
+ else
27
+ echo " Updating version in Cargo.toml to $NEW_VERSION "
28
+ sed -i ' s/^version\s*=\s*".*"/version = "' " $NEW_VERSION " ' "/' " $PROJECT_DIR /Cargo.toml"
29
+ fi
14
30
15
31
echo " Updating version in man pages"
16
32
sed -i ' s/^title: SU(1) sudo-rs .*/title: SU(1) sudo-rs ' " $NEW_VERSION " ' | sudo-rs/' " $PROJECT_DIR " /docs/man/su.1.md
@@ -19,5 +35,3 @@ sed -i 's/^title: VISUDO(8) sudo-rs .*/title: VISUDO(8) sudo-rs '"$NEW_VERSION"'
19
35
20
36
echo " Rebuilding project"
21
37
(cd $PROJECT_DIR && cargo build --release)
22
-
23
- echo " Version changes complete, you must still fill in the changelog entries"
0 commit comments