build.sh 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  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. if [[ "${VSCODE_QUALITY}" == "insider" ]]; then
  20. sed -i 's|@@NAME@@|VSCodium-Insiders|g' recipe.yml
  21. sed -i 's|@@APPNAME@@|codium-insiders|g' recipe.yml
  22. sed -i 's|@@ICON@@|vscodium-insiders|g' recipe.yml
  23. else
  24. sed -i 's|@@NAME@@|VSCodium|g' recipe.yml
  25. sed -i 's|@@APPNAME@@|codium|g' recipe.yml
  26. sed -i 's|@@ICON@@|vscodium|g' recipe.yml
  27. fi
  28. bash -ex pkg2appimage.AppDir/AppRun recipe.yml
  29. rm -f pkg2appimage-*.AppImage
  30. rm -rf pkg2appimage.AppDir
  31. rm -rf VSCodium*
  32. fi
  33. cd "${CALLER_DIR}"