summaryrefslogtreecommitdiffhomepage
path: root/snap/snapcraft.yaml
blob: 32ce2553caf8dd1a0c425ccffbb67d8adf61195d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
name: hugo
version: git
summary: Fast and Flexible Static Site Generator
description: |
  Hugo is a static HTML and CSS website generator written in Go. It is
  optimized for speed, easy use and configurability. Hugo takes a directory
  with content and templates and renders them into a full HTML website.
license: "Apache-2.0"
base: core20
confinement: strict
grade: devel # "devel" or "stable"

package-repositories:
  - type: apt
    components: [main]
    suites: [focal]
    key-id: 9FD3B784BC1C6FC31A8A0A1C1655A0AB68576280
    url: https://deb.nodesource.com/node_16.x

plugs:
  system-gitconfig:
    interface: system-files
    read:
    - /etc/gitconfig
  user-gitconfig:
    interface: personal-files
    read:
    - $HOME/.gitconfig
    - $HOME/.config/git/config
    
apps:
  hugo:
    environment:
      HOME: $SNAP_REAL_HOME
    command: bin/hugo
    completer: hugo-completion
    plugs:
      - home
      - network-bind
      - removable-media
      - system-gitconfig
      - user-gitconfig

parts:
  git:
    plugin: nil
    stage-packages:
      - git
    organize:
      usr/bin/: bin/
    prime:
      - bin/git

  hugo:
    plugin: nil
    build-snaps: [go/1.18/stable]
    source: .
    override-build: |
      set -ex

      echo "\nStarting override-build:"
      export GOPATH=$(realpath ../go)
      export PATH=$GOPATH/bin:$PATH

      echo ' * Running "go install -v github.com/magefile/mage"...'
      go install -v github.com/magefile/mage

      #echo ' * Running "mage -v test"...'
      #mage -v test

      echo " * SNAPCRAFT_IMAGE_INFO=${SNAPCRAFT_IMAGE_INFO=}"
      # Example: SNAPCRAFT_IMAGE_INFO='{"build_url": "https://launchpad.net/~gohugoio/+snap/hugo-extended-dev/+build/344022"}'
      export HUGO_BUILD_TAGS=""
      if echo $SNAPCRAFT_IMAGE_INFO | grep -q '/+snap/hugo-extended'; then
        HUGO_BUILD_TAGS="extended"
      fi
      echo " * Building hugo (HUGO_BUILD_TAGS=\"$HUGO_BUILD_TAGS\")..."
      [ "$SNAPCRAFT_PROJECT_GRADE" = "stable" ] && mage -v hugoNoGitInfo || mage -v hugo
      ./hugo version
      ldd hugo || :

      echo " * Building shell completion..."
      ./hugo completion bash > hugo-completion

      echo " * Installing to ${SNAPCRAFT_PART_INSTALL}..."
      install -d $SNAPCRAFT_PART_INSTALL/bin
      cp -av hugo $SNAPCRAFT_PART_INSTALL/bin/
      mv -v hugo-completion $SNAPCRAFT_PART_INSTALL/

      echo " * Stripping binary..."
      ls -l $SNAPCRAFT_PART_INSTALL/bin/hugo
      strip --remove-section=.comment --remove-section=.note $SNAPCRAFT_PART_INSTALL/bin/hugo
      ls -l $SNAPCRAFT_PART_INSTALL/bin/hugo

  node:
    plugin: nil
    stage-packages:
      - nodejs
    organize:
      usr/bin/: bin/
      usr/lib/: lib/
    prime:
      - bin/node
      - lib/*/lib*.so*

  pandoc:
    plugin: nil
    stage-packages:
      - libatomic1
      - pandoc
      - pandoc-data
    organize:
      usr/bin/: bin/
      usr/lib/: lib/
    prime:
      - bin/pandoc