| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 | 
							- #!/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"
 
-     if [ "$CRATE" = "librespot" ]
 
-     then
 
-       cargo update
 
-     fi
 
-   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 remoteWait() {
 
-   IFS=:
 
-   secs=${1}
 
-   crate_name=${2}
 
-   while [ $secs -gt 0 ]
 
-   do
 
-     sleep 1 &
 
-     printf "\rSleeping to allow %s to propagate on crates.io servers. Continuing in %2d second(s)." ${crate_name} ${secs}
 
-     secs=$(( $secs - 1 ))
 
-     wait
 
-   done
 
-   echo
 
- }
 
- function publishCrates {
 
-   for CRATE in "${crates[@]}"
 
-   do
 
-     if [ "$CRATE" = "librespot" ]
 
-     then
 
-       CRATE=''
 
-     fi
 
-     crate_path="$WORKINGDIR/$CRATE"
 
-     crate_path=${crate_path//\/\///}
 
-     cd $crate_path
 
-     # Also need to update Cargo.lock in root directory
 
-     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"
 
-     remoteWait 30 crate_name
 
-   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
 
 
  |