snapcraft.yaml 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. name: codium
  2. adopt-info: codium
  3. summary: Code editing. Redefined.
  4. description: |
  5. Binary releases of Code without branding/telemetry/licensing
  6. base: core20
  7. grade: stable
  8. confinement: classic
  9. compression: lzo
  10. parts:
  11. codium:
  12. plugin: nil
  13. override-build: |
  14. set -eu
  15. # Get .deb url
  16. wget --quiet https://api.github.com/repos/VSCodium/vscodium/releases -O latest.json
  17. VERSION=$( jq -r 'sort_by(.tag_name)|last.tag_name' latest.json )
  18. DEB_URL=$( jq -r 'map(select(.tag_name == "'"${VERSION}"'"))|first.assets[].browser_download_url|select(endswith("'"_${SNAPCRAFT_TARGET_ARCH}.deb"'"))' latest.json )
  19. DEB_NAME=$( basename "${DEB_URL}" )
  20. # Downloading .deb
  21. wget "${DEB_URL}" -O "${SNAPCRAFT_PART_INSTALL}/${DEB_NAME}"
  22. # Unpacking .deb
  23. dpkg -x "${SNAPCRAFT_PART_INSTALL}/${DEB_NAME}" "${SNAPCRAFT_PART_INSTALL}"
  24. # Clean up
  25. rm -f latest.json
  26. rm -f "${SNAPCRAFT_PART_INSTALL}/${DEB_NAME}"
  27. # Set version
  28. snapcraftctl set-version "${VERSION}"
  29. # Prepare GUI
  30. mkdir -p "${SNAPCRAFT_PART_INSTALL}/meta/gui"
  31. cp "${SNAPCRAFT_PART_INSTALL}/usr/share/codium/resources/app/resources/linux/code.png" "${SNAPCRAFT_PART_INSTALL}/meta/gui/codium.png"
  32. # Update paths
  33. sed -i 's|Exec=/usr/share/codium/codium|Exec=codium --force-user-env|g' "${SNAPCRAFT_PART_INSTALL}/usr/share/applications/codium.desktop"
  34. sed -i 's|Exec=/usr/share/codium/codium|Exec=codium --force-user-env|g' "${SNAPCRAFT_PART_INSTALL}/usr/share/applications/codium-url-handler.desktop"
  35. sed -i 's|Icon=vscodium|Icon=${SNAP}/meta/gui/codium.png|g' "${SNAPCRAFT_PART_INSTALL}/usr/share/applications/codium.desktop"
  36. sed -i 's|Icon=vscodium|Icon=${SNAP}/meta/gui/codium.png|g' "${SNAPCRAFT_PART_INSTALL}/usr/share/applications/codium-url-handler.desktop"
  37. build-packages:
  38. - wget
  39. - jq
  40. stage-packages:
  41. - ca-certificates
  42. - libasound2
  43. - libatk-bridge2.0-0
  44. - libatk1.0-0
  45. - libatspi2.0-0
  46. - libcairo2
  47. - libcanberra-gtk3-module
  48. - libcurl3-gnutls
  49. - libcurl3-nss
  50. - libcurl4
  51. - libdrm2
  52. - libgbm1
  53. - libgl1
  54. - libglib2.0-0
  55. - libgtk-3-0
  56. - libibus-1.0-5
  57. - libnss3
  58. - libpango-1.0-0
  59. - libsecret-1-0
  60. - libxcomposite1
  61. - libxdamage1
  62. - libxfixes3
  63. - libxkbcommon0
  64. - libxkbfile1
  65. - libxrandr2
  66. - libxss1
  67. - locales-all
  68. - packagekit-gtk3-module
  69. - xdg-utils
  70. prime:
  71. - -usr/share/doc
  72. - -usr/share/fonts
  73. - -usr/share/icons
  74. - -usr/share/lintian
  75. - -usr/share/man
  76. - -usr/share/codium/chrome-sandbox
  77. build-attributes:
  78. - enable-patchelf
  79. override-prime: |
  80. set -eux
  81. snapcraftctl prime
  82. for snap in "core20"; do
  83. cd "/snap/${snap}/current/usr/lib/${SNAPCRAFT_ARCH_TRIPLET}"
  84. find . -type f,l -name "*.so*" -exec bash -c "rm -f ${SNAPCRAFT_PRIME}/{}*" \;
  85. done
  86. electron-launch:
  87. after:
  88. - codium
  89. plugin: dump
  90. source: snap/local/bin
  91. apps:
  92. codium:
  93. command: electron-launch $SNAP/usr/share/codium/bin/codium --no-sandbox
  94. desktop: usr/share/applications/codium.desktop
  95. common-id: codium.desktop
  96. url-handler:
  97. command: electron-launch $SNAP/usr/share/codium/bin/codium --open-url --no-sandbox
  98. desktop: usr/share/applications/codium-url-handler.desktop