package.sh 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #!/usr/bin/env bash
  2. package_win32() (
  3. local NSSM_VERSION="nssm-2.24-101-g897c7ad"
  4. local NSSM_URL="https://nssm.cc/ci/${NSSM_VERSION}.zip"
  5. local FFMPEG_VERSION="ffmpeg-4.0.2-win32-static"
  6. local FFMPEG_URL="https://ffmpeg.zeranoe.com/builds/win32/static/${FFMPEG_VERSION}.zip"
  7. local ROOT=${1-$DEFAULT_ROOT}
  8. local OUTPUT_DIR=${2-$DEFAULT_OUTPUT_DIR}
  9. local PKG_DIR=${3-$DEFAULT_PKG_DIR}
  10. local ARCHIVE_CMD="zip -r"
  11. # Package portable build result
  12. if [ -d ${OUTPUT_DIR} ]; then
  13. echo -e "${CYAN}Packaging build in '${OUTPUT_DIR}' for `basename "${OUTPUT_DIR}"` to '${PKG_DIR}' with root '${ROOT}'.${NC}"
  14. local TEMP_DIR="$(mktemp -d)"
  15. wget ${NSSM_URL} -O ${TEMP_DIR}/nssm.zip
  16. wget ${FFMPEG_URL} -O ${TEMP_DIR}/ffmpeg.zip
  17. unzip ${TEMP_DIR}/nssm.zip -d $TEMP_DIR
  18. cp ${TEMP_DIR}/${NSSM_VERSION}/win32/nssm.exe ${OUTPUT_DIR}/nssm.exe
  19. unzip ${TEMP_DIR}/ffmpeg.zip -d $TEMP_DIR
  20. cp ${TEMP_DIR}/${FFMPEG_VERSION}/bin/ffmpeg.exe ${OUTPUT_DIR}/ffmpeg.exe
  21. cp ${TEMP_DIR}/${FFMPEG_VERSION}/bin/ffprobe.exe ${OUTPUT_DIR}/ffprobe.exe
  22. rm -r ${TEMP_DIR}
  23. cp ${ROOT}/deployment/win-generic/install-jellyfin.ps1 ${OUTPUT_DIR}/install-jellyfin.ps1
  24. cp ${ROOT}/deployment/win-generic/install.bat ${OUTPUT_DIR}/install.bat
  25. mkdir -p ${PKG_DIR}
  26. pushd ${OUTPUT_DIR}
  27. ${ARCHIVE_CMD} ${ROOT}/${PKG_DIR}/`basename "${OUTPUT_DIR}"`.zip .
  28. popd
  29. local EXIT_CODE=$?
  30. if [ $EXIT_CODE -eq 0 ]; then
  31. echo -e "${GREEN}[DONE] Packaging build in '${OUTPUT_DIR}' for `basename "${OUTPUT_DIR}"` to '${PKG_DIR}' with root '${ROOT}' complete.${NC}"
  32. else
  33. echo -e "${RED}[FAIL] Packaging build in '${OUTPUT_DIR}' for `basename "${OUTPUT_DIR}"` to '${PKG_DIR}' with root '${ROOT}' FAILED.${NC}"
  34. fi
  35. else
  36. echo -e "${RED}[FAIL] Build artifacts do not exist for ${OUTPUT_DIR}. Run build.sh first.${NC}"
  37. fi
  38. )
  39. source ../common.build.sh
  40. VERSION=`get_version ../..`
  41. package_win32 ../.. `pwd`/dist/jellyfin_${VERSION}
  42. #TODO setup and maybe change above code to produce the Windows native zip format.