Javicle - a JSON Video Composition Language
Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

4 роки тому
4 роки тому
4 роки тому
4 роки тому
4 роки тому
4 роки тому
4 роки тому
4 роки тому
4 роки тому
4 роки тому
4 роки тому
4 роки тому
4 роки тому
4 роки тому
4 роки тому
4 роки тому
4 роки тому
4 роки тому
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. #!/bin/bash
  2. function die () {
  3. echo 1>&2 "${1}"
  4. exit 1
  5. }
  6. function java_major_version () {
  7. for token in $(java -version 2>&1 | grep -i version) ; do
  8. case "${token}" in '"1'*)
  9. echo -n "${token}" | tr -d '"' | awk -F '.' '{print $1}'
  10. esac
  11. done
  12. }
  13. function handle_help_request() {
  14. if [[ -z "${2}" ]]; then
  15. return
  16. fi
  17. if [[ ${2} == "-h" || ${2} == "--help" ]]; then
  18. while IFS='' read -r line || [[ -n "$line" ]]; do
  19. if [[ ${line} =~ ^#.* ]]; then
  20. if [[ ! ${line} =~ ^#!/bin/bash.* ]]; then
  21. echo "${line}"
  22. fi
  23. else
  24. break
  25. fi
  26. done <"${1}"
  27. if [[ -z "${JVC_SKIP_ENV_VAR_HELP}" ]] ; then
  28. echo "# Environment Variables
  29. #
  30. # JVC_SCRATCH_DIR : Use this as the scratch directory
  31. # Default is to create a new temp directory
  32. #
  33. # JVC_NO_EXEC : If set to anything, print the commands that would
  34. # have run but do not execute anything
  35. #
  36. "
  37. fi
  38. exit 1
  39. fi
  40. }
  41. function handle_jvc_noexec() {
  42. if [[ -n "${1}" && ("${1}" == "-n" || "${1}" == "--no-exec" ) ]] ; then
  43. echo -n "--no-exec"
  44. fi
  45. }
  46. # Ensure Java is installed and that it is Java 11
  47. if [[ -z "$(which java)" ]] ; then
  48. die "Java 11 (or higher) not installed (java command not found on PATH)"
  49. fi
  50. JAVA_VERSION="$(java_major_version)"
  51. if [[ -z "${JAVA_VERSION}" ]] ; then
  52. die "Error determining Java version"
  53. elif [[ ${JAVA_VERSION} -lt 11 ]] ; then
  54. die "Java 11 (or higher) not installed (java -version check failed)"
  55. fi
  56. JVC_DIR="$(cd "$(dirname "${0}")"/.. && pwd)"
  57. JVC_JAR="$(find "${JVC_DIR}"/target -type f -name "jvc-*-prod.jar" | head -1)"
  58. if [[ -z "${JVC_JAR}" ]] ; then
  59. # Ensure maven is installed
  60. if [[ -z "$(which mvn)" ]] ; then
  61. die "Maven not installed (mvn command not found on PATH), cannot build JVC jar"
  62. fi
  63. # Build and install utility libraries
  64. pushd "${JVC_DIR}"/utils/cobbzilla-parent || die "Error changing directories to ${JVC_DIR}/utils/cobbzilla-parent"
  65. if [[ -z "$(find . -type f)" ]] ; then
  66. cd ../.. && \
  67. ./bin/use_https_submodules && \
  68. git submodule update --init --recursive && \
  69. cd - \
  70. || die "Error updating git submodule"
  71. fi
  72. mvn install || die "Error installing cobbzilla-parent"
  73. popd || die "popd error (pwd=$(pwd))"
  74. pushd "${JVC_DIR}"/utils/cobbzilla-utils || die "Error changing directories to ${JVC_DIR}/utils/cobbzilla-utils"
  75. if [[ -z "$(find target -type f -name "*.jar")" ]] ; then
  76. mvn -DskipTests=true clean install || die "Error building cobbzilla-utils library"
  77. fi
  78. popd || die "popd error (pwd=$(pwd))"
  79. # Build jvc uberjar
  80. pushd "${JVC_DIR}" || die "Error changing directories to ${JVC_DIR}"
  81. mvn -DskipTests=true -Puberjar clean package || die "Error building JVC jar"
  82. popd || die "popd error (pwd=$(pwd))"
  83. JVC_JAR="$(find "${JVC_DIR}"/target -type f -name "jvc-*-prod.jar" | head -1)"
  84. if [[ -z "${JVC_JAR}" ]] ; then
  85. die "No JVC jar file found after successful build"
  86. fi
  87. fi
  88. handle_help_request "${0}" "${1}"
  89. SCRATCH_DIR=""
  90. if [[ -n "${JVC_SCRATCH_DIR}" ]] ; then
  91. SCRATCH_DIR="--temp-dir ${JVC_SCRATCH_DIR}"
  92. fi
  93. NO_EXEC=""
  94. if [[ -n "${JVC_NO_EXEC}" ]] ; then
  95. NO_EXEC="--no-exec"
  96. fi
  97. _JVC_NO_EXEC="$(handle_jvc_noexec "${1}")"
  98. if [[ -n "${_JVC_NO_EXEC}" ]] ; then
  99. if [[ -z "${NO_EXEC}" ]] ; then
  100. NO_EXEC="--no-exec"
  101. fi
  102. shift
  103. fi
  104. JVC_OPTIONS="${SCRATCH_DIR} ${NO_EXEC}"