name: monolith
base: core18 
# Version data defined inside the monolith part below
adopt-info: monolith
summary: Monolith - Save HTML pages with ease 
description: |
  A data hoarder's dream come true: bundle any web page into a single
  HTML file. You can finally replace that gazillion of open tabs with
  a gazillion of .html files stored somewhere on your precious little
  drive.
  Unlike conventional "Save page as…", monolith not only saves the
  target document, it embeds CSS, image, and JavaScript assets all
  at once, producing a single HTML5 document that is a joy to store
  and share.
  If compared to saving websites with wget -mpk, monolith embeds
  all assets as data URLs and therefore displays the saved page
  exactly the same, being completely separated from the Internet.

confinement: strict

architectures:
  - build-on: amd64
  - build-on: arm64
  - build-on: armhf
  - build-on: i386
  - build-on: ppc64el
  - build-on: s390x

parts:
  monolith:
    plugin: rust
    source: .
    build-packages:
      - libssl-dev
      - pkg-config
    override-pull: |
      snapcraftctl pull
      # Determine the current tag
      last_committed_tag="$(git describe --tags --abbrev=0)"
      last_committed_tag_ver="$(echo ${last_committed_tag} | sed 's/v//')"
      # Determine the most recent version in the beta channel in the Snap Store
      last_released_tag="$(snap info $SNAPCRAFT_PROJECT_NAME | awk '$1 == "beta:" { print $2 }')"
      # If the latest tag from the upstream project has not been released to
      # beta, build that tag instead of master.
      if [ "${last_committed_tag_ver}" != "${last_released_tag}" ]; then
        git fetch
        git checkout "${last_committed_tag}"
      fi
      # set version number of the snap based on what we did above
      snapcraftctl set-version $(git describe --tags --abbrev=0)

apps:
  monolith:
    command: monolith
    plugs:
      - home
      - network
      - removable-media
