summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorcrvv2017-06-29 10:29:43 +0000
committercrvv2017-06-29 10:29:43 +0000
commitfd09433a3106a1efcc685d61a91f9175f77cef61 (patch)
treeef64335bc5f618cefd4d5a14b0765a5ab057828c
parent50c32c397251d5b5029745d7e77820bb0e800306 (diff)
downloadaur-fd09433a3106a1efcc685d61a91f9175f77cef61.tar.gz
add plugin configuration in PKGBUILD
-rw-r--r--.SRCINFO8
-rw-r--r--PKGBUILD73
-rw-r--r--plugins.go61
3 files changed, 132 insertions, 10 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 45a620504791..e62d7b710f36 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,7 @@
pkgbase = caddy
- pkgdesc = HTTP/2 web server with automatic HTTPS
+ pkgdesc = HTTP/2 Web Server with Automatic HTTPS
pkgver = 0.10.4
- pkgrel = 1
+ pkgrel = 2
url = https://caddyserver.com
install = caddy.install
arch = i686
@@ -18,14 +18,14 @@ pkgbase = caddy
source = caddy.service
source = caddy.tmpfiles
source = caddy.conf
- source = enable-dnsproviders.patch
+ source = plugins.go
sha256sums = 411e6bf10520e938712887a31f2132bfd19e2c79543e7aef158f7c77d03ae2bf
sha256sums = e679dd79fd92dc351fc190c7af529c73e3896986aaa6b7c0ae01e561398d6b85
sha256sums = 6db7aec45e95bbbf770ce4d120a60d8e4992d2262a8ebf668521179279aa5ae7
sha256sums = 69e25def317a6172011472bd060655142f3085a0c81392f8a7a9c42b6a58bbd9
sha256sums = bd4d912d083be176727882ccc1bbe577a27cc160db09238e5edc05ba458aebce
sha256sums = 80520b80ccabf077a3269f6a1bf55faa3811ef5adce115131b35ef2044d37b64
- sha256sums = 158c9a0f4327384c244846badc5295eab2a4cf16c354a3669fc0cce1c34e4a91
+ sha256sums = f5a0fbb961e7c9ecf99e88d0959a3164cbea54660c1c08c3ba3cdf1d45563929
pkgname = caddy
diff --git a/PKGBUILD b/PKGBUILD
index 2be6b0367d0f..c0d194224589 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -8,8 +8,8 @@ _import="$_provider.$_tld/$_project/$_repo"
pkgname=caddy
pkgver=0.10.4
-pkgrel=1
-pkgdesc='HTTP/2 web server with automatic HTTPS'
+pkgrel=2
+pkgdesc='HTTP/2 Web Server with Automatic HTTPS'
arch=('i686' 'x86_64' 'armv7h' 'aarch64')
url='https://caddyserver.com'
license=('Apache')
@@ -22,18 +22,28 @@ source=("https://$_import/archive/v$pkgver/$_repo-$pkgver.tar.gz"
'caddy.service'
'caddy.tmpfiles'
'caddy.conf'
- 'enable-dnsproviders.patch')
+ 'plugins.go')
sha256sums=('411e6bf10520e938712887a31f2132bfd19e2c79543e7aef158f7c77d03ae2bf'
'e679dd79fd92dc351fc190c7af529c73e3896986aaa6b7c0ae01e561398d6b85'
'6db7aec45e95bbbf770ce4d120a60d8e4992d2262a8ebf668521179279aa5ae7'
'69e25def317a6172011472bd060655142f3085a0c81392f8a7a9c42b6a58bbd9'
'bd4d912d083be176727882ccc1bbe577a27cc160db09238e5edc05ba458aebce'
'80520b80ccabf077a3269f6a1bf55faa3811ef5adce115131b35ef2044d37b64'
- '158c9a0f4327384c244846badc5295eab2a4cf16c354a3669fc0cce1c34e4a91')
+ '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
- patch -p1 < ../enable-dnsproviders.patch
mkdir -p src/$_provider.$_tld/$_project
ln -s ../../.. src/$_import
}
@@ -41,7 +51,14 @@ prepare() {
build() {
cd $_repo-$pkgver
export GOPATH=$(pwd)
- go get -v -d github.com/caddyserver/dnsproviders/...
+ 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
}
@@ -54,3 +71,47 @@ package() {
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'
+)
diff --git a/plugins.go b/plugins.go
new file mode 100644
index 000000000000..75d16ffff15e
--- /dev/null
+++ b/plugins.go
@@ -0,0 +1,61 @@
+package main
+
+import (
+ "encoding/json"
+ "fmt"
+ "io/ioutil"
+ "log"
+ "net/http"
+ "os"
+ "sort"
+)
+
+const URL = "https://caddyserver.com/api/download-page"
+
+type Plugin struct {
+ Name string
+ ImportPath string
+}
+type PluginList struct {
+ Plugins []Plugin `json:"plugins"`
+}
+
+func getPlugins() []Plugin {
+ resp, err := http.Get(URL)
+ if err != nil {
+ log.Fatal(err)
+ }
+ defer resp.Body.Close()
+ body, err := ioutil.ReadAll(resp.Body)
+ list := PluginList{}
+ err = json.Unmarshal(body, &list)
+ if err != nil {
+ log.Fatal(err)
+ }
+ return list.Plugins
+}
+func main() {
+ plugins := getPlugins()
+ sort.Slice(plugins, func(i, j int) bool {
+ return plugins[i].Name < plugins[j].Name
+ })
+ if len(os.Args) == 1 {
+ fmt.Println("plugins=(")
+ for _, plugin := range plugins {
+ fmt.Printf("# '%s'\n", plugin.Name)
+ }
+ fmt.Println(")")
+ return
+ }
+ pluginsMap := make(map[string]string)
+ for _, plugin := range plugins {
+ pluginsMap[plugin.Name] = plugin.ImportPath
+ }
+ for _, name := range os.Args[1:] {
+ path, ok := pluginsMap[name]
+ if !ok {
+ log.Fatalf("cannot find plugin %s\n", name)
+ }
+ fmt.Printf(`_ "%s"`+"\n", path)
+ }
+}