summaryrefslogtreecommitdiffstats
path: root/snapcraft.yaml
blob: 72c5c54b7b63e66c5a183bccf54551c53f7bc558 (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
name: hugo
version: "0.47.1"
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.
confinement: strict
grade: stable # "devel" or "stable"

apps:
  hugo:
    command: bin/hugo
    completer: hugo-completion
    plugs: [home, network-bind, removable-media]

parts:
  hugo:
    source: .
    plugin: go
    go-importpath: github.com/gohugoio/hugo
    build-packages:
      - git
    stage-packages:
      - git
      - nodejs
      - python-pygments
    override-build: |
      echo "\nStarting override-build:"
      export GOPATH=$(dirname $SNAPCRAFT_PART_INSTALL)/go
      export PATH=$GOPATH/bin:$PATH
      cd $GOPATH/src/github.com/gohugoio/hugo
      echo ' * Running "go get -v github.com/magefile/mage"...'
      go get -v github.com/magefile/mage
      echo ' * Running "mage -v vendor"...'
      mage -v vendor
      echo ' * Running "mage -v test"...'
      mage -v test
      echo " * Building hugo (build tag: none)..."
      [ "$SNAPCRAFT_PROJECT_GRADE" = "stable" ] && mage -v hugoNoGitInfo || mage -v hugo
      ./hugo version
      ldd hugo || :
      echo " * Building shell completion..."
      ./hugo gen autocomplete --completionfile=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
      echo " * Remove unneeded files..."
      rm -rf $SNAPCRAFT_PART_INSTALL/etc
      rm -f $SNAPCRAFT_PART_INSTALL/usr/bin/[^gp]*
      rm -f $SNAPCRAFT_PART_INSTALL/usr/bin/git-*
      rm -f $SNAPCRAFT_PART_INSTALL/usr/bin/p[^y]*
      rm -f $SNAPCRAFT_PART_INSTALL/usr/lib/git-core/git-[^lr]*
      rm -f $SNAPCRAFT_PART_INSTALL/usr/lib/git-core/git-ls-*
      rm -f $SNAPCRAFT_PART_INSTALL/usr/lib/git-core/git-re[^v]*
      rm -f $SNAPCRAFT_PART_INSTALL/usr/lib/git-core/git-revert
      rm -f $SNAPCRAFT_PART_INSTALL/usr/lib/git-core/git-rm
      rm -rf $SNAPCRAFT_PART_INSTALL/usr/lib/git-core/mergetools
      rm -rf $SNAPCRAFT_PART_INSTALL/usr/lib/*/perl
      rm -rf $SNAPCRAFT_PART_INSTALL/usr/lib/mime
      rm -rf $SNAPCRAFT_PART_INSTALL/usr/lib/python*/lib2to3
      rm -rf $SNAPCRAFT_PART_INSTALL/usr/lib/valgrind
      rm -rf $SNAPCRAFT_PART_INSTALL/usr/sbin
      rm -rf $SNAPCRAFT_PART_INSTALL/usr/share/[^p]*
      rm -rf $SNAPCRAFT_PART_INSTALL/usr/share/p[^y]*
      rm -rf $SNAPCRAFT_PART_INSTALL/var
    after: [go]
  go:
    source-tag: go1.10.3