summarylogtreecommitdiffstats
path: root/PKGBUILD
blob: c0d1942245894f75485631c930f44411c0e71b33 (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
117
# Maintainer: Carl George < arch at cgtx dot us >

_provider=github
_tld=com
_project=mholt
_repo=caddy
_import="$_provider.$_tld/$_project/$_repo"

pkgname=caddy
pkgver=0.10.4
pkgrel=2
pkgdesc='HTTP/2 Web Server with Automatic HTTPS'
arch=('i686' 'x86_64' 'armv7h' 'aarch64')
url='https://caddyserver.com'
license=('Apache')
backup=('etc/caddy/caddy.conf')
install='caddy.install'
makedepends=('go>=1.8.1' 'git')
source=("https://$_import/archive/v$pkgver/$_repo-$pkgver.tar.gz"
        'https://caddyserver.com/resources/images/brand/caddy-at-your-service-white.svg'
        'index.html'
        'caddy.service'
        'caddy.tmpfiles'
        'caddy.conf'
        'plugins.go')
sha256sums=('411e6bf10520e938712887a31f2132bfd19e2c79543e7aef158f7c77d03ae2bf'
            'e679dd79fd92dc351fc190c7af529c73e3896986aaa6b7c0ae01e561398d6b85'
            '6db7aec45e95bbbf770ce4d120a60d8e4992d2262a8ebf668521179279aa5ae7'
            '69e25def317a6172011472bd060655142f3085a0c81392f8a7a9c42b6a58bbd9'
            'bd4d912d083be176727882ccc1bbe577a27cc160db09238e5edc05ba458aebce'
            '80520b80ccabf077a3269f6a1bf55faa3811ef5adce115131b35ef2044d37b64'
            'f5a0fbb961e7c9ecf99e88d0959a3164cbea54660c1c08c3ba3cdf1d45563929')

patch_plugins() {
    IFS=''
    n=0
    while read -r line; do
        echo "$line"
        if [[ $line =~ ^import && $n = 0 ]]; then
            go run $srcdir/plugins.go "${plugins[@]}"
            n=1
        fi
    done
}
prepare() {
    cd $_repo-$pkgver
    mkdir -p src/$_provider.$_tld/$_project
    ln -s ../../.. src/$_import
}

build() {
    cd $_repo-$pkgver
    export GOPATH=$(pwd)
    cd $GOPATH/src/$_import/caddy/caddymain/
    if [ ${#plugins[@]} -gt 0 ]; then
        echo enable plugins ${plugins[@]}
        patch_plugins < run.go > run1.go
        mv run1.go run.go
        go get -v -d $_import/caddy/caddymain
    fi
    cd $GOPATH
    go build -v -o ../caddy -ldflags "-X $_import/caddy/caddymain.gitTag=v$pkgver" $_import/caddy
}

package() {
    install -D -m 0755 caddy "$pkgdir/usr/bin/caddy"
    install -D -m 0644 caddy-at-your-service-white.svg "$pkgdir/usr/share/caddy/caddy-at-your-service-white.svg"
    install -D -m 0644 index.html "$pkgdir/usr/share/caddy/index.html"
    install -D -m 0644 caddy.service "$pkgdir/usr/lib/systemd/system/caddy.service"
    install -D -m 0644 caddy.tmpfiles "$pkgdir/usr/lib/tmpfiles.d/caddy.conf"
    install -D -m 0644 caddy.conf "$pkgdir/etc/caddy/caddy.conf"
    install -d -m 0755 "$pkgdir/etc/caddy/caddy.conf.d"
}

plugins=(
#    'dns'
#    'hook.pluginloader'
#    'hook.service'
#    'http.authz'
#    'http.awslambda'
#    'http.cgi'
#    'http.cors'
#    'http.datadog'
#    'http.expires'
#    'http.filemanager'
#    'http.filter'
#    'http.git'
#    'http.grpc'
#    'http.hugo'
#    'http.ipfilter'
#    'http.jwt'
#    'http.login'
#    'http.mailout'
#    'http.minify'
#    'http.prometheus'
#    'http.proxyprotocol'
#    'http.ratelimit'
#    'http.realip'
#    'http.reauth'
#    'http.upload'
#    'net'
#    'tls.dns.cloudflare'
#    'tls.dns.digitalocean'
#    'tls.dns.dnsimple'
#    'tls.dns.dnspod'
#    'tls.dns.dyn'
#    'tls.dns.exoscale'
#    'tls.dns.gandi'
#    'tls.dns.googlecloud'
#    'tls.dns.linode'
#    'tls.dns.namecheap'
#    'tls.dns.ovh'
#    'tls.dns.rackspace'
#    'tls.dns.rfc2136'
#    'tls.dns.route53'
#    'tls.dns.vultr'
)