From e601d919559b03bc89634bfc3bf44cbca56b78b6 Mon Sep 17 00:00:00 2001 From: Nicolas Meienberger Date: Sun, 10 Aug 2025 11:29:34 +0200 Subject: [PATCH] refactor: move driver handlers to own file --- .air.toml | 6 +++--- Dockerfile.dev | 8 ++++++-- docker-compose.yml | 7 ++++--- internal/driver/handlers.go | 17 +++++++++++++++++ main.go | 9 +-------- 5 files changed, 31 insertions(+), 16 deletions(-) create mode 100644 internal/driver/handlers.go diff --git a/.air.toml b/.air.toml index 1b2c0fe..cf24347 100644 --- a/.air.toml +++ b/.air.toml @@ -7,15 +7,15 @@ tmp_dir = "out" bin = "./out/main" cmd = "go build -o ./out/main ." delay = 1000 - exclude_dir = ["assets", "out", "vendor", "testdata"] + exclude_dir = ["assets", "out", "vendor", "testdata", "frontend"] exclude_file = [] exclude_regex = ["_test.go"] exclude_unchanged = false follow_symlink = false full_bin = "" include_dir = [] - include_ext = ["go", "tpl", "tmpl", "html"] - include_file = [] + include_ext = ["go"] + include_file = ["main.go"] kill_delay = "0s" log = "build-errors.log" poll = false diff --git a/Dockerfile.dev b/Dockerfile.dev index 588f5d9..626f943 100644 --- a/Dockerfile.dev +++ b/Dockerfile.dev @@ -1,12 +1,16 @@ FROM golang:1.24-alpine3.21 AS builder -WORKDIR /ironmount +WORKDIR /app RUN go install github.com/air-verse/air@latest + COPY go.mod ./ +COPY go.sum ./ RUN go mod download -COPY . . +COPY ./internal ./internal +COPY ./main.go ./ +COPY ./.air.toml ./ CMD ["air", "-c", ".air.toml"] diff --git a/docker-compose.yml b/docker-compose.yml index eeae5e2..2d61235 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -15,10 +15,11 @@ services: # security_opt: # - apparmor:unconfined volumes: - - ./main.go:/ironmount/main.go - - ./internal:/irounmount/internal - + - /var/run/docker.sock:/var/run/docker.sock - /run/docker/plugins:/run/docker/plugins + + - ./:/app/ + - /home/nicolas/ironmount/tmp:/mounts environment: - GO_ENV=development diff --git a/internal/driver/handlers.go b/internal/driver/handlers.go new file mode 100644 index 0000000..f0a58ba --- /dev/null +++ b/internal/driver/handlers.go @@ -0,0 +1,17 @@ +package driver + +import ( + "net/http" +) + +func SetupHandlers(mux *http.ServeMux) { + mux.HandleFunc("/Plugin.Activate", Activate) + mux.HandleFunc("/VolumeDriver.Create", Create) + mux.HandleFunc("/VolumeDriver.Remove", Remove) + mux.HandleFunc("/VolumeDriver.Mount", Mount) + mux.HandleFunc("/VolumeDriver.Unmount", Unmount) + mux.HandleFunc("/VolumeDriver.Path", Path) + mux.HandleFunc("/VolumeDriver.Get", Get) + mux.HandleFunc("/VolumeDriver.List", List) + +} diff --git a/main.go b/main.go index 95deb24..0b619f4 100644 --- a/main.go +++ b/main.go @@ -42,14 +42,7 @@ func main() { } mux := http.NewServeMux() - mux.HandleFunc("/Plugin.Activate", driver.Activate) - mux.HandleFunc("/VolumeDriver.Create", driver.Create) - mux.HandleFunc("/VolumeDriver.Remove", driver.Remove) - mux.HandleFunc("/VolumeDriver.Mount", driver.Mount) - mux.HandleFunc("/VolumeDriver.Unmount", driver.Unmount) - mux.HandleFunc("/VolumeDriver.Path", driver.Path) - mux.HandleFunc("/VolumeDriver.Get", driver.Get) - mux.HandleFunc("/VolumeDriver.List", driver.List) + driver.SetupHandlers(mux) mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { http.Error(w, "Not Found", http.StatusNotFound)