name: core18
adopt-info: bootstrap
summary: Runtime environment based on Ubuntu 18.04
description: |
  The base snap based on the Ubuntu 18.04 release.
confinement: strict
type: base
build-base: core18

parts:
  bootstrap:
    plugin: make
    source: .
    build-packages:
      - shellcheck
      - git
      - wget
      - python3-debian
      - python3-requests
      - python3-yaml
    # XXX: snapcraft by default doesn't stage hidden (.) files and directories,
    # so we need to explicitly list the .disk file for it to get staged/primed.
    stage: [.disk, ./*]
    prime: [.disk, ./*]
    # XXX: Dirty hacks to enable building core18 on non-bionic systems.
    # Without these overrides both the PATH and LD_LIBRARY_PATH contain paths
    # in the part's install directory which binaries can be incompatible with
    # the ones running on our system.  We don't need those while running stage
    # and prime anyway.
    override-pull: |
      unset LD_LIBRARY_PATH;
      snapcraftctl set-version "$(/bin/date +%Y%m%d)"
      snapcraftctl pull
    override-stage: |
      unset LD_LIBRARY_PATH;
      export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"
      # ensure snapcraftctl is found, see
      # https://github.com/snapcore/snapcraft/pull/2251
      export PATH="$PATH:/snap/snapcraft/current/bin/scriptlet-bin"
      snapcraftctl stage
    override-prime: |
      unset LD_LIBRARY_PATH;
      export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"
      # ensure snapcraftctl is found, see
      # https://github.com/snapcore/snapcraft/pull/2251
      export PATH="$PATH:/snap/snapcraft/current/bin/scriptlet-bin"
      snapcraftctl prime
      # ensure build-in tests are run
      cd ${SNAPCRAFT_PART_SRC} && make test TESTDIR=${SNAPCRAFT_PRIME}
