From d2a556d1cc463afad68f93a22c613261ba4c167c Mon Sep 17 00:00:00 2001 From: Jonni Liljamo Date: Mon, 16 Oct 2023 22:04:54 +0300 Subject: [PATCH] refactor: directory layout --- Dockerfile | 5 +++-- felu.go => cmd/felu/main.go | 19 ++++++++++--------- go.mod | 10 +++++----- {api => internal/api}/key.go | 0 .../components}/adminpartials.templ | 2 +- .../components}/adminpartials_templ.go | 2 +- .../components}/base.templ | 2 +- .../components}/base_templ.go | 2 +- .../components}/index.templ | 0 .../components}/index_templ.go | 0 .../components}/login.templ | 0 .../components}/login_templ.go | 0 .../components}/manage.templ | 2 +- .../components}/manage_templ.go | 2 +- .../components}/manageadmin.templ | 0 .../components}/manageadmin_templ.go | 0 .../components}/managepartials.templ | 2 +- .../components}/managepartials_templ.go | 2 +- {config => internal/config}/config.go | 0 {db => internal/db}/db.go | 2 +- {db => internal/db}/domains.go | 2 +- {db => internal/db}/migrations.go | 0 {db => internal/db}/users.go | 0 {dns => internal/dns}/handle.go | 0 {dns => internal/dns}/query.go | 0 {dns => internal/dns}/server.go | 2 +- {handlers => internal/handlers}/admin.go | 2 +- .../handlers}/adminpartials.go | 4 ++-- {handlers => internal/handlers}/login.go | 2 +- .../handlers}/managedomains.go | 2 +- .../handlers}/managepartials.go | 4 ++-- {handlers => internal/handlers}/users.go | 2 +- .../middlewares}/admin.go | 2 +- {middlewares => internal/middlewares}/auth.go | 0 renderer.go => internal/renderer/renderer.go | 2 +- 35 files changed, 39 insertions(+), 37 deletions(-) rename felu.go => cmd/felu/main.go (88%) rename {api => internal/api}/key.go (100%) rename {components => internal/components}/adminpartials.templ (92%) rename {components => internal/components}/adminpartials_templ.go (98%) rename {components => internal/components}/base.templ (95%) rename {components => internal/components}/base_templ.go (98%) rename {components => internal/components}/index.templ (100%) rename {components => internal/components}/index_templ.go (100%) rename {components => internal/components}/login.templ (100%) rename {components => internal/components}/login_templ.go (100%) rename {components => internal/components}/manage.templ (94%) rename {components => internal/components}/manage_templ.go (98%) rename {components => internal/components}/manageadmin.templ (100%) rename {components => internal/components}/manageadmin_templ.go (100%) rename {components => internal/components}/managepartials.templ (97%) rename {components => internal/components}/managepartials_templ.go (99%) rename {config => internal/config}/config.go (100%) rename {db => internal/db}/db.go (94%) rename {db => internal/db}/domains.go (96%) rename {db => internal/db}/migrations.go (100%) rename {db => internal/db}/users.go (100%) rename {dns => internal/dns}/handle.go (100%) rename {dns => internal/dns}/query.go (100%) rename {dns => internal/dns}/server.go (89%) rename {handlers => internal/handlers}/admin.go (92%) rename {handlers => internal/handlers}/adminpartials.go (85%) rename {handlers => internal/handlers}/login.go (95%) rename {handlers => internal/handlers}/managedomains.go (97%) rename {handlers => internal/handlers}/managepartials.go (88%) rename {handlers => internal/handlers}/users.go (96%) rename {middlewares => internal/middlewares}/admin.go (94%) rename {middlewares => internal/middlewares}/auth.go (100%) rename renderer.go => internal/renderer/renderer.go (98%) diff --git a/Dockerfile b/Dockerfile index a499714..6447af4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -10,10 +10,11 @@ WORKDIR /usr/src/app COPY go.mod go.sum ./ RUN go mod download && go mod verify -COPY . . +COPY cmd/ ./cmd +COPY internal/ ./internal RUN --mount=type=cache,target=/root/.cache/go-build \ -CGO_ENABLED=1 GOOS=linux go build -ldflags=-X=main.version=${VERSION} -v -o /felu ./*.go +CGO_ENABLED=1 GOOS=linux go build -ldflags=-X=main.version=${VERSION} -v -o /felu ./cmd/felu/main.go # tester FROM builder AS tester diff --git a/felu.go b/cmd/felu/main.go similarity index 88% rename from felu.go rename to cmd/felu/main.go index 97833fc..8c229bf 100644 --- a/felu.go +++ b/cmd/felu/main.go @@ -13,12 +13,13 @@ import ( "strconv" "time" - "git.src.quest/~skye/felu-ddns/components" - "git.src.quest/~skye/felu-ddns/config" - "git.src.quest/~skye/felu-ddns/db" - "git.src.quest/~skye/felu-ddns/dns" - "git.src.quest/~skye/felu-ddns/handlers" - "git.src.quest/~skye/felu-ddns/middlewares" + "git.src.quest/~skye/felu-ddns/internal/components" + "git.src.quest/~skye/felu-ddns/internal/config" + "git.src.quest/~skye/felu-ddns/internal/db" + "git.src.quest/~skye/felu-ddns/internal/dns" + "git.src.quest/~skye/felu-ddns/internal/handlers" + "git.src.quest/~skye/felu-ddns/internal/middlewares" + "git.src.quest/~skye/felu-ddns/internal/renderer" "github.com/alexedwards/scs/v2" "github.com/gin-gonic/gin" "golang.org/x/sync/errgroup" @@ -61,7 +62,7 @@ func setupFrontendRouter() *gin.Engine { return ginLogFormat(param, "frontend") })) r.Static("/static", "./static") - r.HTMLRender = &TemplRender{} + r.HTMLRender = &renderer.TemplRender{} r.GET("/", func(c *gin.Context) { c.HTML(http.StatusOK, "", components.Index()) @@ -80,13 +81,13 @@ func setupFrontendRouter() *gin.Engine { manage := r.Group("/manage").Use(middlewares.SessionExists(sessionManager)) { manage.GET("/", func(c *gin.Context) { - c.HTML(http.StatusOK, "", components.Manage()) + c.HTML(http.StatusOK, "", components.Manage()) //TODO: yeah move these to handlers/manage.go }) manage.GET("/settings", func(c *gin.Context) { c.HTML(http.StatusOK, "", components.ManageSettings()) }) - manage.POST("/domains", handlers.PostDomain()) + manage.POST("/domains", handlers.PostDomain()) //TODO: move these to handlers/domains.go manage.PATCH("/domains/:id") // TODO: manage.DELETE("/domains/:id", handlers.DeleteDomain()) diff --git a/go.mod b/go.mod index ec41985..245e93d 100644 --- a/go.mod +++ b/go.mod @@ -5,12 +5,16 @@ go 1.20 require ( git.src.quest/~skye/erya-go v0.0.0-20231011145529-3201c2bf8ec7 github.com/a-h/templ v0.2.364 + github.com/alexedwards/scs/v2 v2.5.1 github.com/gin-gonic/gin v1.9.1 + github.com/matthewhartstonge/argon2 v0.3.4 + github.com/mattn/go-sqlite3 v1.14.17 + github.com/miekg/dns v1.1.56 + github.com/oklog/ulid/v2 v2.1.0 golang.org/x/sync v0.4.0 ) require ( - github.com/alexedwards/scs/v2 v2.5.1 // indirect github.com/bytedance/sonic v1.10.2 // indirect github.com/chenzhuoyu/base64x v0.0.0-20230717121745-296ad89f973d // indirect github.com/chenzhuoyu/iasm v0.9.0 // indirect @@ -25,13 +29,9 @@ require ( github.com/klauspost/cpuid/v2 v2.2.5 // indirect github.com/kr/pretty v0.3.1 // indirect github.com/leodido/go-urn v1.2.4 // indirect - github.com/matthewhartstonge/argon2 v0.3.4 // indirect github.com/mattn/go-isatty v0.0.19 // indirect - github.com/mattn/go-sqlite3 v1.14.17 // indirect - github.com/miekg/dns v1.1.56 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect - github.com/oklog/ulid/v2 v2.1.0 // indirect github.com/pelletier/go-toml/v2 v2.1.0 // indirect github.com/rogpeppe/go-internal v1.11.0 // indirect github.com/twitchyliquid64/golang-asm v0.15.1 // indirect diff --git a/api/key.go b/internal/api/key.go similarity index 100% rename from api/key.go rename to internal/api/key.go diff --git a/components/adminpartials.templ b/internal/components/adminpartials.templ similarity index 92% rename from components/adminpartials.templ rename to internal/components/adminpartials.templ index 1bb1d5c..5db5da8 100644 --- a/components/adminpartials.templ +++ b/internal/components/adminpartials.templ @@ -1,6 +1,6 @@ package components -import "git.src.quest/~skye/felu-ddns/db" +import "git.src.quest/~skye/felu-ddns/internal/db" import "strconv" templ AdminPartialsUsersList(users []db.User) { diff --git a/components/adminpartials_templ.go b/internal/components/adminpartials_templ.go similarity index 98% rename from components/adminpartials_templ.go rename to internal/components/adminpartials_templ.go index df7648f..32748ae 100644 --- a/components/adminpartials_templ.go +++ b/internal/components/adminpartials_templ.go @@ -9,7 +9,7 @@ import "context" import "io" import "bytes" -import "git.src.quest/~skye/felu-ddns/db" +import "git.src.quest/~skye/felu-ddns/internal/db" import "strconv" func AdminPartialsUsersList(users []db.User) templ.Component { diff --git a/components/base.templ b/internal/components/base.templ similarity index 95% rename from components/base.templ rename to internal/components/base.templ index a7b4d77..363b72d 100644 --- a/components/base.templ +++ b/internal/components/base.templ @@ -1,6 +1,6 @@ package components -import "git.src.quest/~skye/felu-ddns/config" +import "git.src.quest/~skye/felu-ddns/internal/config" func serviceName() string { return config.FeluConfig.ServiceName diff --git a/components/base_templ.go b/internal/components/base_templ.go similarity index 98% rename from components/base_templ.go rename to internal/components/base_templ.go index 2e4a498..f540c44 100644 --- a/components/base_templ.go +++ b/internal/components/base_templ.go @@ -9,7 +9,7 @@ import "context" import "io" import "bytes" -import "git.src.quest/~skye/felu-ddns/config" +import "git.src.quest/~skye/felu-ddns/internal/config" func serviceName() string { return config.FeluConfig.ServiceName diff --git a/components/index.templ b/internal/components/index.templ similarity index 100% rename from components/index.templ rename to internal/components/index.templ diff --git a/components/index_templ.go b/internal/components/index_templ.go similarity index 100% rename from components/index_templ.go rename to internal/components/index_templ.go diff --git a/components/login.templ b/internal/components/login.templ similarity index 100% rename from components/login.templ rename to internal/components/login.templ diff --git a/components/login_templ.go b/internal/components/login_templ.go similarity index 100% rename from components/login_templ.go rename to internal/components/login_templ.go diff --git a/components/manage.templ b/internal/components/manage.templ similarity index 94% rename from components/manage.templ rename to internal/components/manage.templ index 4c9a20e..e1fb0d3 100644 --- a/components/manage.templ +++ b/internal/components/manage.templ @@ -1,6 +1,6 @@ package components -import "git.src.quest/~skye/felu-ddns/config" +import "git.src.quest/~skye/felu-ddns/internal/config" func getDomainPattern() string { return config.FeluConfig.DNSPattern diff --git a/components/manage_templ.go b/internal/components/manage_templ.go similarity index 98% rename from components/manage_templ.go rename to internal/components/manage_templ.go index f96da4c..0b32bc2 100644 --- a/components/manage_templ.go +++ b/internal/components/manage_templ.go @@ -9,7 +9,7 @@ import "context" import "io" import "bytes" -import "git.src.quest/~skye/felu-ddns/config" +import "git.src.quest/~skye/felu-ddns/internal/config" func getDomainPattern() string { return config.FeluConfig.DNSPattern diff --git a/components/manageadmin.templ b/internal/components/manageadmin.templ similarity index 100% rename from components/manageadmin.templ rename to internal/components/manageadmin.templ diff --git a/components/manageadmin_templ.go b/internal/components/manageadmin_templ.go similarity index 100% rename from components/manageadmin_templ.go rename to internal/components/manageadmin_templ.go diff --git a/components/managepartials.templ b/internal/components/managepartials.templ similarity index 97% rename from components/managepartials.templ rename to internal/components/managepartials.templ index 3123ed4..2b5d83d 100644 --- a/components/managepartials.templ +++ b/internal/components/managepartials.templ @@ -1,6 +1,6 @@ package components -import "git.src.quest/~skye/felu-ddns/db" +import "git.src.quest/~skye/felu-ddns/internal/db" import "fmt" templ ManagePartialDomains(domains []db.Domain) { diff --git a/components/managepartials_templ.go b/internal/components/managepartials_templ.go similarity index 99% rename from components/managepartials_templ.go rename to internal/components/managepartials_templ.go index 91f3ef2..e9e78ee 100644 --- a/components/managepartials_templ.go +++ b/internal/components/managepartials_templ.go @@ -9,7 +9,7 @@ import "context" import "io" import "bytes" -import "git.src.quest/~skye/felu-ddns/db" +import "git.src.quest/~skye/felu-ddns/internal/db" import "fmt" func ManagePartialDomains(domains []db.Domain) templ.Component { diff --git a/config/config.go b/internal/config/config.go similarity index 100% rename from config/config.go rename to internal/config/config.go diff --git a/db/db.go b/internal/db/db.go similarity index 94% rename from db/db.go rename to internal/db/db.go index abfab23..896a341 100644 --- a/db/db.go +++ b/internal/db/db.go @@ -9,7 +9,7 @@ package db import ( "database/sql" - "git.src.quest/~skye/felu-ddns/config" + "git.src.quest/~skye/felu-ddns/internal/config" _ "github.com/mattn/go-sqlite3" ) diff --git a/db/domains.go b/internal/db/domains.go similarity index 96% rename from db/domains.go rename to internal/db/domains.go index fc49c8c..1133a58 100644 --- a/db/domains.go +++ b/internal/db/domains.go @@ -7,7 +7,7 @@ package db import ( - "git.src.quest/~skye/felu-ddns/api" + "git.src.quest/~skye/felu-ddns/internal/api" "github.com/oklog/ulid/v2" ) diff --git a/db/migrations.go b/internal/db/migrations.go similarity index 100% rename from db/migrations.go rename to internal/db/migrations.go diff --git a/db/users.go b/internal/db/users.go similarity index 100% rename from db/users.go rename to internal/db/users.go diff --git a/dns/handle.go b/internal/dns/handle.go similarity index 100% rename from dns/handle.go rename to internal/dns/handle.go diff --git a/dns/query.go b/internal/dns/query.go similarity index 100% rename from dns/query.go rename to internal/dns/query.go diff --git a/dns/server.go b/internal/dns/server.go similarity index 89% rename from dns/server.go rename to internal/dns/server.go index 7ed08a7..6927d9b 100644 --- a/dns/server.go +++ b/internal/dns/server.go @@ -7,7 +7,7 @@ package dns import ( - "git.src.quest/~skye/felu-ddns/config" + "git.src.quest/~skye/felu-ddns/internal/config" "github.com/miekg/dns" ) diff --git a/handlers/admin.go b/internal/handlers/admin.go similarity index 92% rename from handlers/admin.go rename to internal/handlers/admin.go index 6e70230..3d3d939 100644 --- a/handlers/admin.go +++ b/internal/handlers/admin.go @@ -9,7 +9,7 @@ package handlers import ( "net/http" - "git.src.quest/~skye/felu-ddns/components" + "git.src.quest/~skye/felu-ddns/internal/components" "github.com/gin-gonic/gin" ) diff --git a/handlers/adminpartials.go b/internal/handlers/adminpartials.go similarity index 85% rename from handlers/adminpartials.go rename to internal/handlers/adminpartials.go index ecbe62c..9a280c8 100644 --- a/handlers/adminpartials.go +++ b/internal/handlers/adminpartials.go @@ -9,8 +9,8 @@ package handlers import ( "net/http" - "git.src.quest/~skye/felu-ddns/components" - "git.src.quest/~skye/felu-ddns/db" + "git.src.quest/~skye/felu-ddns/internal/components" + "git.src.quest/~skye/felu-ddns/internal/db" "github.com/gin-gonic/gin" ) diff --git a/handlers/login.go b/internal/handlers/login.go similarity index 95% rename from handlers/login.go rename to internal/handlers/login.go index 41a81fd..4adff27 100644 --- a/handlers/login.go +++ b/internal/handlers/login.go @@ -10,7 +10,7 @@ import ( "log" "net/http" - "git.src.quest/~skye/felu-ddns/db" + "git.src.quest/~skye/felu-ddns/internal/db" "github.com/alexedwards/scs/v2" "github.com/gin-gonic/gin" ) diff --git a/handlers/managedomains.go b/internal/handlers/managedomains.go similarity index 97% rename from handlers/managedomains.go rename to internal/handlers/managedomains.go index ef100be..57df652 100644 --- a/handlers/managedomains.go +++ b/internal/handlers/managedomains.go @@ -11,7 +11,7 @@ import ( "net" "net/http" - "git.src.quest/~skye/felu-ddns/db" + "git.src.quest/~skye/felu-ddns/internal/db" "github.com/gin-gonic/gin" ) diff --git a/handlers/managepartials.go b/internal/handlers/managepartials.go similarity index 88% rename from handlers/managepartials.go rename to internal/handlers/managepartials.go index dd69d25..90b54cf 100644 --- a/handlers/managepartials.go +++ b/internal/handlers/managepartials.go @@ -9,8 +9,8 @@ package handlers import ( "net/http" - "git.src.quest/~skye/felu-ddns/components" - "git.src.quest/~skye/felu-ddns/db" + "git.src.quest/~skye/felu-ddns/internal/components" + "git.src.quest/~skye/felu-ddns/internal/db" "github.com/gin-gonic/gin" ) diff --git a/handlers/users.go b/internal/handlers/users.go similarity index 96% rename from handlers/users.go rename to internal/handlers/users.go index 1d7fb33..b2830b3 100644 --- a/handlers/users.go +++ b/internal/handlers/users.go @@ -10,7 +10,7 @@ import ( "log" "net/http" - "git.src.quest/~skye/felu-ddns/db" + "git.src.quest/~skye/felu-ddns/internal/db" "github.com/gin-gonic/gin" ) diff --git a/middlewares/admin.go b/internal/middlewares/admin.go similarity index 94% rename from middlewares/admin.go rename to internal/middlewares/admin.go index 306fe12..7c51ed1 100644 --- a/middlewares/admin.go +++ b/internal/middlewares/admin.go @@ -9,7 +9,7 @@ package middlewares import ( "net/http" - "git.src.quest/~skye/felu-ddns/db" + "git.src.quest/~skye/felu-ddns/internal/db" "github.com/gin-gonic/gin" ) diff --git a/middlewares/auth.go b/internal/middlewares/auth.go similarity index 100% rename from middlewares/auth.go rename to internal/middlewares/auth.go diff --git a/renderer.go b/internal/renderer/renderer.go similarity index 98% rename from renderer.go rename to internal/renderer/renderer.go index 692eaef..76ba605 100644 --- a/renderer.go +++ b/internal/renderer/renderer.go @@ -4,7 +4,7 @@ * This file is licensed under AGPL-3.0-or-later, see NOTICE and LICENSE for * more information. */ -package main +package renderer import ( "context" -- 2.44.1