update-version-file.sh 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #!/usr/bin/env bash
  2. ##
  3. # Updates the version file
  4. #
  5. # @author Daniel Rudolf
  6. # @link http://picocms.org
  7. # @license http://opensource.org/licenses/MIT
  8. #
  9. set -e
  10. . "$(dirname "$0")/functions/parse-version.sh.inc"
  11. # parameters
  12. VERSION_FILE_PATH="$1" # target file path
  13. VERSION_STRING="$2" # version string (e.g. 1.0.0-beta.1+7b4ad7f)
  14. # print parameters
  15. echo "Generating version file..."
  16. printf 'VERSION_FILE_PATH="%s"\n' "$VERSION_FILE_PATH"
  17. printf 'VERSION_STRING="%s"\n' "$VERSION_STRING"
  18. echo
  19. # evaluate version string (see http://semver.org/)
  20. printf 'Evaluating version string...\n'
  21. if ! parse_version "$VERSION_STRING"; then
  22. echo "Invalid version string; skipping..." >&2
  23. exit 1
  24. fi
  25. # generate version file
  26. printf 'Updating version file...\n'
  27. echo -n "" > "$VERSION_FILE_PATH"
  28. exec 3> "$VERSION_FILE_PATH"
  29. printf 'full: %s\n' "$VERSION_FULL" >&3
  30. printf 'name: %s\n' "$VERSION_NAME" >&3
  31. printf 'milestone: %s\n' "$VERSION_MILESTONE" >&3
  32. printf 'stability: %s\n' "$VERSION_STABILITY" >&3
  33. printf 'id: %d\n' "$VERSION_ID" >&3
  34. printf 'major: %d\n' "$VERSION_MAJOR" >&3
  35. printf 'minor: %d\n' "$VERSION_MINOR" >&3
  36. printf 'patch: %d\n' "$VERSION_PATCH" >&3
  37. printf 'suffix: %s\n' "$VERSION_SUFFIX" >&3
  38. printf 'build: %s\n' "$VERSION_BUILD" >&3
  39. exec 3>&-
  40. echo