infogulch / xtemplate-caddy

4 stars 1 forks source link

add direct build, as alternative to xcaddy based builds. #4

Closed gedw99 closed 4 months ago

gedw99 commented 4 months ago

Would like to do direct builds also for more control...

package main

import (
    caddycmd "github.com/caddyserver/caddy/v2/cmd"
    // simple test
    //_ "github.com/hairyhenderson/caddy-teapot-module"

    // plug in Caddy modules here
    _ "github.com/caddyserver/caddy/v2/modules/standard"

    _ "github.com/caddyserver/caddy/v2/caddyconfig/httpcaddyfile"
    _ "github.com/caddyserver/caddy/v2/modules/caddyhttp"

    //_ "github.com/greenpau/caddy-security"
    //_ "github.com/greenpau/caddy-trace"

    _ "github.com/infogulch/xtemplate"

    _ "github.com/infogulch/xtemplate-caddy"
)

func main() {
    caddycmd.Main()
}
module main

go 1.22.2

require (
    github.com/caddyserver/caddy/v2 v2.7.6
    github.com/infogulch/xtemplate v0.6.4
    github.com/infogulch/xtemplate-caddy v0.1.1-v0.4.0
)

require (
    filippo.io/edwards25519 v1.0.0 // indirect
    github.com/AndreasBriese/bbloom v0.0.0-20190825152654-46b345b51c96 // indirect
    github.com/BurntSushi/toml v1.3.2 // indirect
    github.com/Masterminds/goutils v1.1.1 // indirect
    github.com/Masterminds/semver/v3 v3.2.1 // indirect
    github.com/Masterminds/sprig/v3 v3.2.3 // indirect
    github.com/Microsoft/go-winio v0.6.1 // indirect
    github.com/alecthomas/chroma/v2 v2.13.0 // indirect
    github.com/andybalholm/brotli v1.1.0 // indirect
    github.com/antlr/antlr4/runtime/Go/antlr/v4 v4.0.0-20230305170008-8188dc5388df // indirect
    github.com/aryann/difflib v0.0.0-20210328193216-ff5ff6dc229b // indirect
    github.com/aymerick/douceur v0.2.0 // indirect
    github.com/beorn7/perks v1.0.1 // indirect
    github.com/caddyserver/certmagic v0.20.0 // indirect
    github.com/cenkalti/backoff/v4 v4.2.1 // indirect
    github.com/cespare/xxhash v1.1.0 // indirect
    github.com/cespare/xxhash/v2 v2.2.0 // indirect
    github.com/chzyer/readline v1.5.1 // indirect
    github.com/cpuguy83/go-md2man/v2 v2.0.4 // indirect
    github.com/dgraph-io/badger v1.6.2 // indirect
    github.com/dgraph-io/badger/v2 v2.2007.4 // indirect
    github.com/dgraph-io/ristretto v0.1.1 // indirect
    github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 // indirect
    github.com/dlclark/regexp2 v1.11.0 // indirect
    github.com/dustin/go-humanize v1.0.1 // indirect
    github.com/felixge/httpsnoop v1.0.4 // indirect
    github.com/fsnotify/fsnotify v1.7.0 // indirect
    github.com/fxamacker/cbor/v2 v2.5.0 // indirect
    github.com/go-chi/chi/v5 v5.0.10 // indirect
    github.com/go-kit/kit v0.13.0 // indirect
    github.com/go-kit/log v0.2.1 // indirect
    github.com/go-logfmt/logfmt v0.6.0 // indirect
    github.com/go-logr/logr v1.3.0 // indirect
    github.com/go-logr/stdr v1.2.2 // indirect
    github.com/go-sql-driver/mysql v1.7.1 // indirect
    github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 // indirect
    github.com/golang/glog v1.2.0 // indirect
    github.com/golang/protobuf v1.5.3 // indirect
    github.com/golang/snappy v0.0.4 // indirect
    github.com/google/cel-go v0.15.1 // indirect
    github.com/google/certificate-transparency-go v1.1.6 // indirect
    github.com/google/go-tpm v0.9.0 // indirect
    github.com/google/go-tspi v0.3.0 // indirect
    github.com/google/pprof v0.0.0-20231127191134-f3a68a39ae15 // indirect
    github.com/google/uuid v1.6.0 // indirect
    github.com/gorilla/css v1.0.1 // indirect
    github.com/grpc-ecosystem/grpc-gateway/v2 v2.18.0 // indirect
    github.com/huandu/xstrings v1.4.0 // indirect
    github.com/imdario/mergo v0.3.16 // indirect
    github.com/inconshreveable/mousetrap v1.1.0 // indirect
    github.com/infogulch/watch v0.2.0 // indirect
    github.com/jackc/chunkreader/v2 v2.0.1 // indirect
    github.com/jackc/pgconn v1.14.3 // indirect
    github.com/jackc/pgio v1.0.0 // indirect
    github.com/jackc/pgpassfile v1.0.0 // indirect
    github.com/jackc/pgproto3/v2 v2.3.3 // indirect
    github.com/jackc/pgservicefile v0.0.0-20231201235250-de7065d80cb9 // indirect
    github.com/jackc/pgtype v1.14.0 // indirect
    github.com/jackc/pgx/v4 v4.18.2 // indirect
    github.com/klauspost/compress v1.17.7 // indirect
    github.com/klauspost/cpuid/v2 v2.2.6 // indirect
    github.com/libdns/libdns v0.2.1 // indirect
    github.com/manifoldco/promptui v0.9.0 // indirect
    github.com/mastercactapus/proxyprotocol v0.0.4 // indirect
    github.com/mattn/go-colorable v0.1.13 // indirect
    github.com/mattn/go-isatty v0.0.20 // indirect
    github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 // indirect
    github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d // indirect
    github.com/mholt/acmez v1.2.0 // indirect
    github.com/microcosm-cc/bluemonday v1.0.26 // indirect
    github.com/miekg/dns v1.1.57 // indirect
    github.com/mitchellh/copystructure v1.2.0 // indirect
    github.com/mitchellh/go-ps v1.0.0 // indirect
    github.com/mitchellh/reflectwalk v1.0.2 // indirect
    github.com/onsi/ginkgo/v2 v2.13.2 // indirect
    github.com/pkg/errors v0.9.1 // indirect
    github.com/prometheus/client_golang v1.17.0 // indirect
    github.com/prometheus/client_model v0.5.0 // indirect
    github.com/prometheus/common v0.45.0 // indirect
    github.com/prometheus/procfs v0.12.0 // indirect
    github.com/quic-go/qpack v0.4.0 // indirect
    github.com/quic-go/qtls-go1-20 v0.4.1 // indirect
    github.com/quic-go/quic-go v0.40.1 // indirect
    github.com/rogpeppe/go-internal v1.11.0 // indirect
    github.com/rs/xid v1.5.0 // indirect
    github.com/russross/blackfriday/v2 v2.1.0 // indirect
    github.com/shopspring/decimal v1.3.1 // indirect
    github.com/shurcooL/sanitized_anchor_name v1.0.0 // indirect
    github.com/sirupsen/logrus v1.9.3 // indirect
    github.com/slackhq/nebula v1.7.2 // indirect
    github.com/smallstep/certificates v0.25.2 // indirect
    github.com/smallstep/go-attestation v0.4.4-0.20230627102604-cf579e53cbd2 // indirect
    github.com/smallstep/nosql v0.6.0 // indirect
    github.com/smallstep/pkcs7 v0.0.0-20231107075624-be1870d87d13 // indirect
    github.com/smallstep/scep v0.0.0-20231024192529-aee96d7ad34d // indirect
    github.com/smallstep/truststore v0.13.0 // indirect
    github.com/spf13/cast v1.6.0 // indirect
    github.com/spf13/cobra v1.8.0 // indirect
    github.com/spf13/pflag v1.0.5 // indirect
    github.com/stoewer/go-strcase v1.3.0 // indirect
    github.com/tailscale/tscert v0.0.0-20230806124524-28a91b69a046 // indirect
    github.com/tdewolff/minify/v2 v2.20.19 // indirect
    github.com/tdewolff/parse/v2 v2.7.12 // indirect
    github.com/urfave/cli v1.22.14 // indirect
    github.com/x448/float16 v0.8.4 // indirect
    github.com/yuin/goldmark v1.7.1 // indirect
    github.com/yuin/goldmark-highlighting/v2 v2.0.0-20230729083705-37449abec8cc // indirect
    github.com/zeebo/blake3 v0.2.3 // indirect
    go.etcd.io/bbolt v1.3.8 // indirect
    go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0 // indirect
    go.opentelemetry.io/contrib/propagators/autoprop v0.42.0 // indirect
    go.opentelemetry.io/contrib/propagators/aws v1.17.0 // indirect
    go.opentelemetry.io/contrib/propagators/b3 v1.17.0 // indirect
    go.opentelemetry.io/contrib/propagators/jaeger v1.17.0 // indirect
    go.opentelemetry.io/contrib/propagators/ot v1.17.0 // indirect
    go.opentelemetry.io/otel v1.21.0 // indirect
    go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.21.0 // indirect
    go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.21.0 // indirect
    go.opentelemetry.io/otel/metric v1.21.0 // indirect
    go.opentelemetry.io/otel/sdk v1.21.0 // indirect
    go.opentelemetry.io/otel/trace v1.21.0 // indirect
    go.opentelemetry.io/proto/otlp v1.0.0 // indirect
    go.step.sm/cli-utils v0.8.0 // indirect
    go.step.sm/crypto v0.38.0 // indirect
    go.step.sm/linkedca v0.20.1 // indirect
    go.uber.org/mock v0.4.0 // indirect
    go.uber.org/multierr v1.11.0 // indirect
    go.uber.org/zap v1.27.0 // indirect
    go.uber.org/zap/exp v0.2.0 // indirect
    golang.org/x/crypto v0.22.0 // indirect
    golang.org/x/exp v0.0.0-20240222234643-814bf88cf225 // indirect
    golang.org/x/mod v0.15.0 // indirect
    golang.org/x/net v0.24.0 // indirect
    golang.org/x/sync v0.6.0 // indirect
    golang.org/x/sys v0.19.0 // indirect
    golang.org/x/term v0.19.0 // indirect
    golang.org/x/text v0.14.0 // indirect
    golang.org/x/tools v0.18.0 // indirect
    google.golang.org/genproto/googleapis/api v0.0.0-20231127180814-3a041ad873d4 // indirect
    google.golang.org/genproto/googleapis/rpc v0.0.0-20231127180814-3a041ad873d4 // indirect
    google.golang.org/grpc v1.59.0 // indirect
    google.golang.org/protobuf v1.33.0 // indirect
    gopkg.in/natefinch/lumberjack.v2 v2.2.1 // indirect
    gopkg.in/square/go-jose.v2 v2.6.0 // indirect
    gopkg.in/yaml.v3 v3.0.1 // indirect
    howett.net/plist v1.0.1 // indirect
)

but I am getting ...

CGO_ENABLED=1 go build .
# github.com/infogulch/xtemplate-caddy
../xtemplate-caddy/caddyfile.go:30:24: t.Template undefined (type *XTemplateModule has no field or method Template)
../xtemplate-caddy/caddyfile.go:34:24: t.Template undefined (type *XTemplateModule has no field or method Template)
../xtemplate-caddy/caddyfile.go:38:24: t.Template undefined (type *XTemplateModule has no field or method Template)
../xtemplate-caddy/caddyfile.go:49:24: t.Context undefined (type *XTemplateModule has no field or method Context)
../xtemplate-caddy/caddyfile.go:60:24: t.Database undefined (type *XTemplateModule has no field or method Database)
../xtemplate-caddy/caddyfile.go:64:24: t.Database undefined (type *XTemplateModule has no field or method Database)
../xtemplate-caddy/caddyfile.go:75:20: t.UserConfig undefined (type *XTemplateModule has no field or method UserConfig)
../xtemplate-caddy/caddyfile.go:81:8: t.UserConfig undefined (type *XTemplateModule has no field or method UserConfig)
../xtemplate-caddy/module.go:46:7: m.Database undefined (type *XTemplateModule has no field or method Database)
../xtemplate-caddy/module.go:47:62: m.Database undefined (type *XTemplateModule has no field or method Database)
../xtemplate-caddy/module.go:47:62: too many errors
infogulch commented 4 months ago

Good idea. I added this to the readme and added an example that does this.