package_version.sh 980 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #!/bin/bash
  2. function build_num_from_file {
  3. version=$(< "$1")
  4. version=${version##*-}
  5. version=${version%%+*}
  6. version=${version%%~*}
  7. echo -n "$version"
  8. }
  9. while getopts ":N:V:" flag; do
  10. case "$flag" in
  11. :) echo "$0: Option -$OPTARG requires an argument." 1>&2
  12. exit 1
  13. ;;
  14. \?) echo "$0: What're you talking about?" 1>&2
  15. exit 1
  16. ;;
  17. N) package="$OPTARG" ;;
  18. V) version="$OPTARG" ;;
  19. esac
  20. done
  21. if [[ ! -d "${THEOS_PROJECT_DIR}/.theos/packages" ]]; then
  22. if [[ -d "${THEOS_PROJECT_DIR}/.debmake" ]]; then
  23. mkdir -p "${THEOS_PROJECT_DIR}/.theos"
  24. mv "${THEOS_PROJECT_DIR}/.debmake" "${THEOS_PROJECT_DIR}/.theos/packages"
  25. else
  26. mkdir -p "${THEOS_PROJECT_DIR}/.theos/packages"
  27. fi
  28. fi
  29. versionfile="${THEOS_PROJECT_DIR}/.theos/packages/$package-$version"
  30. build_number=0
  31. if [[ ! -e "$versionfile" ]]; then
  32. build_number=1
  33. else
  34. build_number=$(build_num_from_file "$versionfile")
  35. let build_number++
  36. fi
  37. echo -n "$build_number" > "$versionfile"
  38. echo "$build_number"