bump_version 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. #!/usr/bin/env bash
  2. # bump_version - increase the shared version and generate changelogs
  3. set -o errexit
  4. set -o pipefail
  5. set -o xtrace
  6. usage() {
  7. echo -e "bump_version - increase the shared version"
  8. echo -e ""
  9. echo -e "Usage:"
  10. echo -e " $ bump_version <new_version>"
  11. }
  12. if [[ -z $1 ]]; then
  13. usage
  14. exit 1
  15. fi
  16. shared_version_file="./SharedVersion.cs"
  17. # csproj files for nuget packages
  18. jellyfin_subprojects=(
  19. MediaBrowser.Common/MediaBrowser.Common.csproj
  20. Jellyfin.Data/Jellyfin.Data.csproj
  21. MediaBrowser.Controller/MediaBrowser.Controller.csproj
  22. MediaBrowser.Model/MediaBrowser.Model.csproj
  23. Emby.Naming/Emby.Naming.csproj
  24. src/Jellyfin.Extensions/Jellyfin.Extensions.csproj
  25. )
  26. new_version="$1"
  27. new_version_sed="$( cut -f1 -d'-' <<<"${new_version}" )"
  28. old_version="$(
  29. grep "AssemblyVersion" ${shared_version_file} \
  30. | sed -E 's/\[assembly: ?AssemblyVersion\("([0-9\.]+)"\)\]/\1/'
  31. )"
  32. echo old assembly version: $old_version
  33. # Set the assembly version to the specified new_version
  34. sed -i "s|${old_version}|${new_version_sed}|g" ${shared_version_file}
  35. # update nuget package version
  36. for subproject in ${jellyfin_subprojects[@]}; do
  37. echo ${subproject}
  38. # Parse the version from the *.csproj file
  39. old_version="$(
  40. grep "VersionPrefix" ${subproject} \
  41. | awk '{$1=$1};1' \
  42. | sed -E 's/<VersionPrefix>([0-9\.]+[-a-z0-9]*)<\/VersionPrefix>/\1/'
  43. )"
  44. echo old nuget version: $old_version
  45. # Set the nuget version to the specified new_version
  46. sed -i "s|${old_version}|${new_version_sed}|g" ${subproject}
  47. done
  48. # Stage the changed files for commit
  49. git add .
  50. git status -v