03_package_obs.sh 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. #!/usr/bin/env bash
  2. ##############################################################################
  3. # FreeBSD OBS package function
  4. ##############################################################################
  5. #
  6. # This script file can be included in build scripts for FreeBSD or run directly
  7. #
  8. ##############################################################################
  9. # Halt on errors
  10. set -eE
  11. package_obs() {
  12. status "Create FreeBSD debian package"
  13. trap "caught_error 'package app'" ERR
  14. ensure_dir "${CHECKOUT_DIR}"
  15. step "Package OBS..."
  16. cmake --build ${BUILD_DIR} -t package
  17. ZIP_NAME="$(/usr/bin/find "${BUILD_DIR}" -maxdepth 1 -type f -name "obs-studio-*.sh" | sort -rn | head -1)"
  18. if [ "${ZIP_NAME}" ]; then
  19. mv "${ZIP_NAME%.*}.sh" "${BUILD_DIR}/${FILE_NAME}.sh"
  20. mv "${ZIP_NAME%.*}.tar.gz" "${BUILD_DIR}/${FILE_NAME}.tar.gz"
  21. mv "${ZIP_NAME%.*}.tar.Z" "${BUILD_DIR}/${FILE_NAME}.tar.Z"
  22. else
  23. error "ERROR No suitable OBS debian package generated"
  24. fi
  25. }
  26. package-obs-standalone() {
  27. PRODUCT_NAME="OBS-Studio"
  28. CHECKOUT_DIR="$(git rev-parse --show-toplevel)"
  29. DEPS_BUILD_DIR="${CHECKOUT_DIR}/../obs-build-dependencies"
  30. source ${CHECKOUT_DIR}/CI/include/build_support.sh
  31. source ${CHECKOUT_DIR}/CI/include/build_support_freebsd.sh
  32. step "Fetch OBS tags..."
  33. git fetch origin --tags
  34. GIT_BRANCH=$(git rev-parse --abbrev-ref HEAD)
  35. GIT_HASH=$(git rev-parse --short=9 HEAD)
  36. GIT_TAG=$(git describe --tags --abbrev=0)
  37. FILE_NAME="obs-studio-${GIT_TAG}-${GIT_HASH}-freebsd"
  38. package_obs
  39. }
  40. print_usage() {
  41. echo -e "Usage: ${0}\n" \
  42. "-h, --help : Print this help\n" \
  43. "-q, --quiet : Suppress most build process output\n" \
  44. "-v, --verbose : Enable more verbose build process output\n" \
  45. "--build-dir : Specify alternative build directory (default: build)\n"
  46. }
  47. package-obs-main() {
  48. if [ -z "${_RUN_OBS_BUILD_SCRIPT}" ]; then
  49. while true; do
  50. case "${1}" in
  51. -h | --help ) print_usage; exit 0 ;;
  52. -q | --quiet ) export QUIET=TRUE; shift ;;
  53. -v | --verbose ) export VERBOSE=TRUE; shift ;;
  54. --build-dir ) BUILD_DIR="${2}"; shift 2 ;;
  55. -- ) shift; break ;;
  56. * ) break ;;
  57. esac
  58. done
  59. package-obs-standalone
  60. fi
  61. }
  62. package-obs-main $*