build.sh 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #!/usr/bin/env bash
  2. set -ex
  3. CALLER_DIR=$( pwd )
  4. cd "$( dirname "${BASH_SOURCE[0]}" )"
  5. if [[ "${VSCODE_ARCH}" == "x64" ]]; then
  6. GITHUB_RESPONSE=$( curl --silent --location "https://api.github.com/repos/AppImage/pkg2appimage/releases/latest" )
  7. APPIMAGE_URL=$( echo "${GITHUB_RESPONSE}" | jq --raw-output '.assets | map(select( .name | test("x86_64.AppImage(?!.zsync)"))) | map(.browser_download_url)[0]' )
  8. if [[ -z "${APPIMAGE_URL}" ]]; then
  9. echo "The url for pkg2appimage.AppImage hasn't been found"
  10. exit 1
  11. fi
  12. wget -c "${APPIMAGE_URL}" -O pkg2appimage.AppImage
  13. chmod +x ./pkg2appimage.AppImage
  14. ./pkg2appimage.AppImage --appimage-extract && mv ./squashfs-root ./pkg2appimage.AppDir
  15. # add update's url
  16. sed -i 's/generate_type2_appimage/generate_type2_appimage -u "gh-releases-zsync|VSCodium|vscodium|latest|*.AppImage.zsync"/' pkg2appimage.AppDir/AppRun
  17. # remove check so build in docker can succeed
  18. sed -i 's/grep docker/# grep docker/' pkg2appimage.AppDir/usr/share/pkg2appimage/functions.sh
  19. APP_NAME_LC="$( echo "${APP_NAME}" | awk '{print tolower($0)}' )"
  20. if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
  21. sed -i "s|@@NAME@@|${APP_NAME}-Insiders|g" recipe.yml
  22. sed -i "s|@@APPNAME@@|${BINARY_NAME}|g" recipe.yml
  23. sed -i "s|@@ICON@@|${APP_NAME_LC}-insiders|g" recipe.yml
  24. else
  25. sed -i "s|@@NAME@@|${APP_NAME}|g" recipe.yml
  26. sed -i "s|@@APPNAME@@|${BINARY_NAME}|g" recipe.yml
  27. sed -i "s|@@ICON@@|${APP_NAME_LC}|g" recipe.yml
  28. fi
  29. # workaround that enforces x86 ARCH for pkg2appimage having /__w/vscodium/vscodium/build/linux/appimage/VSCodium/VSCodium.AppDir/usr/share/codium/resources/app/node_modules/rc/index.js is of architecture armhf
  30. export ARCH=x86_64
  31. bash -ex pkg2appimage.AppDir/AppRun recipe.yml
  32. rm -f pkg2appimage-*.AppImage
  33. rm -rf pkg2appimage.AppDir
  34. rm -rf VSCodium*
  35. fi
  36. cd "${CALLER_DIR}"