From d1be93919f2577a5e61f171f317585a00b26d9ed Mon Sep 17 00:00:00 2001 From: Catherine Date: Wed, 22 Oct 2025 05:16:49 +0000 Subject: [PATCH] Make installable with `go install`. --- .forgejo/workflows/ci.yaml | 4 ++-- .gitignore | 1 + Dockerfile | 2 +- flake.nix | 6 +----- main.go | 7 +++++++ src/auth.go | 2 +- src/backend.go | 2 +- src/backend_fs.go | 2 +- src/backend_s3.go | 2 +- src/cache.go | 2 +- src/caddy.go | 2 +- src/config.go | 2 +- src/extract.go | 2 +- src/fetch.go | 2 +- src/main.go | 4 ++-- src/manifest.go | 2 +- src/observe.go | 2 +- src/pages.go | 2 +- src/redirects.go | 2 +- src/schema.pb.go | 7 ++++--- src/update.go | 2 +- src/util.go | 2 +- src/wildcard.go | 2 +- 23 files changed, 34 insertions(+), 29 deletions(-) create mode 100644 main.go diff --git a/.forgejo/workflows/ci.yaml b/.forgejo/workflows/ci.yaml index 6a29d5c..a55ec5d 100644 --- a/.forgejo/workflows/ci.yaml +++ b/.forgejo/workflows/ci.yaml @@ -25,10 +25,10 @@ jobs: apt-get -y install ca-certificates - name: Build service run: | - go build -o bin/git-pages ./src + go build -o bin/git-pages . - name: Run static analysis run: | - go vet ./src + go vet . package: needs: [check] diff --git a/.gitignore b/.gitignore index 47d32df..9658acf 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ /bin /data /config*.toml* +/git-pages diff --git a/Dockerfile b/Dockerfile index 4077108..10d2a57 100644 --- a/Dockerfile +++ b/Dockerfile @@ -22,7 +22,7 @@ WORKDIR /build COPY go.mod go.sum ./ RUN go mod download COPY src/ ./src/ -RUN go build -ldflags "-s -w" -o git-pages ./src +RUN go build -ldflags "-s -w" -o git-pages . # Compose git-pages and Caddy. FROM docker.io/library/busybox:1.37.0-musl diff --git a/flake.nix b/flake.nix index 8fc2d01..4986074 100644 --- a/flake.nix +++ b/flake.nix @@ -27,6 +27,7 @@ include = [ "go.mod" "go.sum" + "main.go" (nix-filter.lib.inDirectory "src") ]; @@ -43,11 +44,6 @@ ]; vendorHash = "sha256-8maDQA0RHvCzJCkMtCbHtQuT7emVwuiNqoKBm5+TeeQ="; - - fixupPhase = '' - # Apparently `go install` doesn't support renaming the binary, so country girls make do. - mv $out/bin/{src,git-pages} - ''; }; in { diff --git a/main.go b/main.go new file mode 100644 index 0000000..08807e2 --- /dev/null +++ b/main.go @@ -0,0 +1,7 @@ +// Go insists on having this file here for `go install` to work properly. + +package main + +import gitpages "codeberg.org/git-pages/git-pages/src" + +func main() { gitpages.Main() } diff --git a/src/auth.go b/src/auth.go index 9aa8666..3dfe723 100644 --- a/src/auth.go +++ b/src/auth.go @@ -1,4 +1,4 @@ -package main +package git_pages import ( "crypto/sha256" diff --git a/src/backend.go b/src/backend.go index 8e28dd2..a62d841 100644 --- a/src/backend.go +++ b/src/backend.go @@ -1,4 +1,4 @@ -package main +package git_pages import ( "context" diff --git a/src/backend_fs.go b/src/backend_fs.go index ac19d47..3d94219 100644 --- a/src/backend_fs.go +++ b/src/backend_fs.go @@ -1,4 +1,4 @@ -package main +package git_pages import ( "context" diff --git a/src/backend_s3.go b/src/backend_s3.go index 955d851..04eb1c5 100644 --- a/src/backend_s3.go +++ b/src/backend_s3.go @@ -1,4 +1,4 @@ -package main +package git_pages import ( "bytes" diff --git a/src/cache.go b/src/cache.go index 3e7360b..8f2988a 100644 --- a/src/cache.go +++ b/src/cache.go @@ -1,4 +1,4 @@ -package main +package git_pages import ( "context" diff --git a/src/caddy.go b/src/caddy.go index 5025474..2febad7 100644 --- a/src/caddy.go +++ b/src/caddy.go @@ -1,4 +1,4 @@ -package main +package git_pages import ( "fmt" diff --git a/src/config.go b/src/config.go index 7bd5ef4..33301d5 100644 --- a/src/config.go +++ b/src/config.go @@ -1,4 +1,4 @@ -package main +package git_pages import ( "bytes" diff --git a/src/extract.go b/src/extract.go index 6887fdb..227022d 100644 --- a/src/extract.go +++ b/src/extract.go @@ -1,4 +1,4 @@ -package main +package git_pages import ( "archive/tar" diff --git a/src/fetch.go b/src/fetch.go index 50ca85d..37f9a1d 100644 --- a/src/fetch.go +++ b/src/fetch.go @@ -1,4 +1,4 @@ -package main +package git_pages import ( "context" diff --git a/src/main.go b/src/main.go index 3f4805b..596bbd1 100644 --- a/src/main.go +++ b/src/main.go @@ -1,4 +1,4 @@ -package main +package git_pages import ( "context" @@ -69,7 +69,7 @@ func serve(listener net.Listener, handler http.Handler) { } } -func main() { +func Main() { printConfigEnvVars := flag.Bool("print-config-env-vars", false, "print every recognized configuration environment variable and exit") printConfig := flag.Bool("print-config", false, diff --git a/src/manifest.go b/src/manifest.go index f0a2e6b..de4eb43 100644 --- a/src/manifest.go +++ b/src/manifest.go @@ -1,6 +1,6 @@ //go:generate protoc --go_out=. --go_opt=paths=source_relative schema.proto -package main +package git_pages import ( "bytes" diff --git a/src/observe.go b/src/observe.go index a7ce6d3..4904f50 100644 --- a/src/observe.go +++ b/src/observe.go @@ -1,4 +1,4 @@ -package main +package git_pages import ( "context" diff --git a/src/pages.go b/src/pages.go index f769179..9d9ad6a 100644 --- a/src/pages.go +++ b/src/pages.go @@ -1,4 +1,4 @@ -package main +package git_pages import ( "bytes" diff --git a/src/redirects.go b/src/redirects.go index c53d9a0..29205d0 100644 --- a/src/redirects.go +++ b/src/redirects.go @@ -1,4 +1,4 @@ -package main +package git_pages import ( "fmt" diff --git a/src/schema.pb.go b/src/schema.pb.go index 4366f72..6f99c4b 100644 --- a/src/schema.pb.go +++ b/src/schema.pb.go @@ -4,14 +4,15 @@ // protoc v6.30.2 // source: schema.proto -package main +package git_pages import ( - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" unsafe "unsafe" + + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" ) const ( diff --git a/src/update.go b/src/update.go index 839e282..cac76aa 100644 --- a/src/update.go +++ b/src/update.go @@ -1,4 +1,4 @@ -package main +package git_pages import ( "context" diff --git a/src/util.go b/src/util.go index 6347dd9..1134301 100644 --- a/src/util.go +++ b/src/util.go @@ -1,4 +1,4 @@ -package main +package git_pages import ( "errors" diff --git a/src/wildcard.go b/src/wildcard.go index 850b63b..5842b67 100644 --- a/src/wildcard.go +++ b/src/wildcard.go @@ -1,4 +1,4 @@ -package main +package git_pages import ( "fmt"