forked from librespot-org/librespot
-
Notifications
You must be signed in to change notification settings - Fork 0
/
publish.sh
executable file
·82 lines (70 loc) · 1.87 KB
/
publish.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#!/bin/bash
WORKINGDIR="$( cd "$(dirname "$0")" ; pwd -P )"
cd $WORKINGDIR
crates=( "protocol" "core" "audio" "metadata" "playback" "connect" "librespot" )
function switchBranch {
# You are expected to have committed/stashed your changes before running this.
echo "Switching to master branch and merging development."
git checkout master
git pull
git merge dev
}
function updateVersion {
for CRATE in "${crates[@]}"
do
if [ "$CRATE" = "librespot" ]
then
CRATE=''
fi
crate_path="$WORKINGDIR/$CRATE/Cargo.toml"
crate_path=${crate_path//\/\///}
sed -i '' "s/^version.*/version = \"$1\"/g" "$crate_path"
echo "Path is $crate_path"
done
}
function commitAndTag {
git commit -a -m "Update version numbers to $1"
git tag "v$1" -a -m "Update to version $1"
}
function get_crate_name {
awk -v FS="name = " 'NF>1{print $2; exit}' Cargo.toml
}
function publishCrates {
for CRATE in "${crates[@]}"
do
if [ "$CRATE" = "librespot" ]
then
CRATE=''
fi
crate_path="$WORKINGDIR/$CRATE"
crate_path=${crate_path//\/\///}
cd $crate_path
crate_name=`echo $( awk -v FS="name = " 'NF>1{print $2; exit}' Cargo.toml )`
echo "Publishing $crate_name to crates.io"
if [ "$CRATE" == "protocol" ]
then
# Protocol crate needs --no-verify option due to build.rs modification.
cargo publish --no-verify
else
cargo publish
fi
echo "Successfully published $crate_name to crates.io"
done
}
function updateRepo {
cd $WORKINGDIR
echo "Pushing to master branch of repo."
git push origin master
echo "Pushing v$1 tag to master branch of repo."
git push origin v$1
}
function run {
switchBranch
updateVersion $1
commitAndTag $1
publishCrates
updateRepo $1
echo "Successfully published v$1 to crates.io and uploaded changes to repo."
}
# First argument is new version number.
run $1