name: codium-insiders
adopt-info: codium-insiders
summary: Code editing. Redefined.
description: |
  Binary releases of Code without branding/telemetry/licensing

base: core18
grade: stable
confinement: classic
compression: lzo

parts:
  codium:
    plugin: nil
    override-build: |
      set -eu
      ARCHITECTURE=$(dpkg --print-architecture)
      # Get GitHub releases
      wget --quiet https://api.github.com/repos/VSCodium/vscodium-insiders/releases -O latest.json
      VERSION=$(jq -r 'sort_by(.tag_name)|last.tag_name' latest.json)
      DEB_URL=$(jq -r 'map(select(.tag_name == "'"$VERSION"'"))|first.assets[].browser_download_url|select(endswith("'"_$ARCHITECTURE.deb"'"))' latest.json)
      DEB=$(basename "${DEB_URL}")
      # Downloading .deb"
      wget "${DEB_URL}" -O "${SNAPCRAFT_PART_INSTALL}/${DEB}"
      # Unpacking .deb"
      dpkg -x "${SNAPCRAFT_PART_INSTALL}/${DEB}" ${SNAPCRAFT_PART_INSTALL}
      rm -f latest.json
      rm -f "${SNAPCRAFT_PART_INSTALL}/${DEB}"
      # Set version
      snapcraftctl set-version "$VERSION"
      # Correct path to icon.
      sed -i 's|Icon=vscodium|Icon=${SNAP}/usr/share/pixmaps/vscodium.png|g' ${SNAPCRAFT_PART_INSTALL}/usr/share/applications/codium.desktop
      sed -i 's|Exec=/usr/share/codium/codium|Exec=codium|g' ${SNAPCRAFT_PART_INSTALL}/usr/share/applications/codium.desktop
      sed -i 's|Icon=vscodium|Icon=/usr/share/pixmaps/vscodium.png|g' ${SNAPCRAFT_PART_INSTALL}/usr/share/applications/codium-url-handler.desktop
    build-packages:
      - wget
      - jq
    stage-packages:
      - fcitx-frontend-gtk3
      - gvfs-libs
      - libasound2
      - libgconf-2-4
      - libglib2.0-bin
      - libgnome-keyring0
      - libgtk-3-0
      - libnotify4
      - libnspr4
      - libnss3
      - libpcre3
      - libpulse0
      - libsecret-1-0
      - libxshmfence1
      - libxss1
      - libxtst6
      - zlib1g
      - libx11-xcb1
      - libxkbfile1
      - libdrm2
      - libgbm1
      - libxcb-dri3-0
    prime:
      - -usr/share/doc
      - -usr/share/fonts
      - -usr/share/icons
      - -usr/share/lintian
      - -usr/share/man
      - -usr/share/codium/chrome-sandbox

  electron-launch:
    after:
      - codium
    plugin: dump
    source: snap/local

apps:
  codium:
    command: electron-launch $SNAP/usr/share/codium/bin/codium --no-sandbox
    desktop: usr/share/applications/codium.desktop
    environment:
      DISABLE_WAYLAND: 1
      GSETTINGS_SCHEMA_DIR: $SNAP/usr/share/glib-2.0/schemas

  url-handler:
    command: electron-launch $SNAP/usr/share/codium/bin/codium --open-url --no-sandbox
    desktop: usr/share/applications/codium-url-handler.desktop
    environment:
      DISABLE_WAYLAND: 1
      GSETTINGS_SCHEMA_DIR: $SNAP/usr/share/glib-2.0/schemas
