#!/bin/sh VERSION=${VERSION:-"1.0.3"} TELEMETRY=${ENABLE_TELEMETRY:-"true"} IMPORT="github.com/caddyserver/caddy" # version <1.0.1 needs to use old import path new_import=true if [ "$(echo $VERSION | cut -c1)" -eq 0 ] 2>/dev/null || [ "$VERSION" = "1.0.0" ]; then IMPORT="github.com/mholt/caddy" && new_import=false fi # add `v` prefix for version numbers [ "$(echo $VERSION | cut -c1)" -ge 0 ] 2>/dev/null && VERSION="v$VERSION" stage() { STAGE="$1" echo echo starting stage: $STAGE } end_stage() { if [ $? -ne 0 ]; then >&2 echo error at \'$STAGE\' exit 1 fi echo finished stage: $STAGE ✓ echo } use_new_import() ( cd $1 find . -name '*.go' | while read -r f; do sed -i.bak 's/\/mholt\/caddy/\/caddyserver\/caddy/g' $f && rm $f.bak done ) get_package() { # go module require special dns handling if $go_mod && [ -f /dnsproviders/$1/$1.go ]; then mkdir -p /caddy/dnsproviders/$1 cp -r /dnsproviders/$1/$1.go /caddy/dnsproviders/$1/$1.go echo "caddy/dnsproviders/$1" else GO111MODULE=off GOOS=linux GOARCH=amd64 caddyplug package $1 2> /dev/null fi } dns_plugins() { git clone https://github.com/caddyserver/dnsproviders /dnsproviders # temp hack for repo rename if $new_import; then use_new_import /dnsproviders; fi } plugins() { mkdir -p /plugins for plugin in $(echo $PLUGINS | tr "," " "); do \ import_package=$(get_package $plugin) $go_mod || go get -v "$import_package" ; # not needed for modules $go_mod && package="main" || package="caddyhttp" printf "package $package\nimport _ \"$import_package\"" > \ /plugins/$plugin.go ; \ done } module() { mkdir -p /caddy cd /caddy # build dir # setup module go mod init caddy go get -v $IMPORT@$VERSION # plugins cp -r /plugins/. . # temp hack for repo rename go get -v -d # download possible plugin deps if $new_import; then use_new_import /go/pkg/mod; fi # main and telemetry cat > main.go < "$run_file.disablestats.go" <