diff --git a/spindle/engine_microvm_linux.go b/spindle/engine_microvm_linux.go new file mode 100644 index 00000000..5c5551b0 --- /dev/null +++ b/spindle/engine_microvm_linux.go @@ -0,0 +1,16 @@ +//go:build linux + +package spindle + +import ( + "context" + + "tangled.org/core/spindle/config" + "tangled.org/core/spindle/db" + "tangled.org/core/spindle/engines/microvm" + "tangled.org/core/spindle/models" +) + +func newMicrovmEngine(ctx context.Context, cfg *config.Config, d *db.DB) (models.Engine, error) { + return microvm.New(ctx, cfg, d) +} diff --git a/spindle/engine_microvm_other.go b/spindle/engine_microvm_other.go new file mode 100644 index 00000000..9da4c9fc --- /dev/null +++ b/spindle/engine_microvm_other.go @@ -0,0 +1,16 @@ +//go:build !linux + +package spindle + +import ( + "context" + "fmt" + + "tangled.org/core/spindle/config" + "tangled.org/core/spindle/db" + "tangled.org/core/spindle/models" +) + +func newMicrovmEngine(context.Context, *config.Config, *db.DB) (models.Engine, error) { + return nil, fmt.Errorf("microvm engine is only supported on Linux") +} diff --git a/spindle/engines/microvm/agent.go b/spindle/engines/microvm/agent.go index ed757810..cfec1aac 100644 --- a/spindle/engines/microvm/agent.go +++ b/spindle/engines/microvm/agent.go @@ -1,3 +1,5 @@ +//go:build linux + package microvm import ( diff --git a/spindle/engines/microvm/args.go b/spindle/engines/microvm/args.go index 05b370af..0b4f1c42 100644 --- a/spindle/engines/microvm/args.go +++ b/spindle/engines/microvm/args.go @@ -1,3 +1,5 @@ +//go:build linux + package microvm import ( diff --git a/spindle/engines/microvm/budget.go b/spindle/engines/microvm/budget.go index 20798344..27383266 100644 --- a/spindle/engines/microvm/budget.go +++ b/spindle/engines/microvm/budget.go @@ -1,3 +1,5 @@ +//go:build linux + package microvm import ( diff --git a/spindle/engines/microvm/dns_proxy.go b/spindle/engines/microvm/dns_proxy.go index 16e6183a..e6b99a0c 100644 --- a/spindle/engines/microvm/dns_proxy.go +++ b/spindle/engines/microvm/dns_proxy.go @@ -1,3 +1,5 @@ +//go:build linux + package microvm import ( diff --git a/spindle/engines/microvm/dns_proxy_test.go b/spindle/engines/microvm/dns_proxy_test.go index a38b0f4e..cb1de34c 100644 --- a/spindle/engines/microvm/dns_proxy_test.go +++ b/spindle/engines/microvm/dns_proxy_test.go @@ -1,3 +1,5 @@ +//go:build linux + package microvm import ( diff --git a/spindle/engines/microvm/engine.go b/spindle/engines/microvm/engine.go index c2f141ab..7bd90c35 100644 --- a/spindle/engines/microvm/engine.go +++ b/spindle/engines/microvm/engine.go @@ -1,3 +1,5 @@ +//go:build linux + package microvm import ( diff --git a/spindle/engines/microvm/engine_test.go b/spindle/engines/microvm/engine_test.go index 13465cd5..5a5aac7b 100644 --- a/spindle/engines/microvm/engine_test.go +++ b/spindle/engines/microvm/engine_test.go @@ -1,3 +1,5 @@ +//go:build linux + package microvm import ( diff --git a/spindle/engines/microvm/image.go b/spindle/engines/microvm/image.go index 71518ce8..e32ad3cd 100644 --- a/spindle/engines/microvm/image.go +++ b/spindle/engines/microvm/image.go @@ -1,3 +1,5 @@ +//go:build linux + package microvm import ( diff --git a/spindle/engines/microvm/image_test.go b/spindle/engines/microvm/image_test.go index 3c5f66f0..1114937c 100644 --- a/spindle/engines/microvm/image_test.go +++ b/spindle/engines/microvm/image_test.go @@ -1,3 +1,5 @@ +//go:build linux + package microvm import ( diff --git a/spindle/engines/microvm/models.go b/spindle/engines/microvm/models.go index 02f3c096..f80772c2 100644 --- a/spindle/engines/microvm/models.go +++ b/spindle/engines/microvm/models.go @@ -1,3 +1,5 @@ +//go:build linux + package microvm import ( diff --git a/spindle/engines/microvm/models_test.go b/spindle/engines/microvm/models_test.go index b103e4f5..256fe1ec 100644 --- a/spindle/engines/microvm/models_test.go +++ b/spindle/engines/microvm/models_test.go @@ -1,3 +1,5 @@ +//go:build linux + package microvm import ( diff --git a/spindle/engines/microvm/networking.go b/spindle/engines/microvm/networking.go index 4a7a8d6c..e79c077f 100644 --- a/spindle/engines/microvm/networking.go +++ b/spindle/engines/microvm/networking.go @@ -1,3 +1,5 @@ +//go:build linux + package microvm import ( diff --git a/spindle/engines/microvm/nixos_toplevel_cache.go b/spindle/engines/microvm/nixos_toplevel_cache.go index 1617aa2b..a50700ef 100644 --- a/spindle/engines/microvm/nixos_toplevel_cache.go +++ b/spindle/engines/microvm/nixos_toplevel_cache.go @@ -1,3 +1,5 @@ +//go:build linux + package microvm import ( diff --git a/spindle/engines/microvm/qemu.go b/spindle/engines/microvm/qemu.go index 99f32547..f7ddec42 100644 --- a/spindle/engines/microvm/qemu.go +++ b/spindle/engines/microvm/qemu.go @@ -1,3 +1,5 @@ +//go:build linux + package microvm import ( diff --git a/spindle/engines/microvm/read_cache_proxy.go b/spindle/engines/microvm/read_cache_proxy.go index 885e5fe7..0c019adb 100644 --- a/spindle/engines/microvm/read_cache_proxy.go +++ b/spindle/engines/microvm/read_cache_proxy.go @@ -1,3 +1,5 @@ +//go:build linux + package microvm import ( diff --git a/spindle/engines/microvm/read_cache_proxy_test.go b/spindle/engines/microvm/read_cache_proxy_test.go index 29a6bd19..9df05101 100644 --- a/spindle/engines/microvm/read_cache_proxy_test.go +++ b/spindle/engines/microvm/read_cache_proxy_test.go @@ -1,3 +1,5 @@ +//go:build linux + package microvm import ( diff --git a/spindle/engines/microvm/runner.go b/spindle/engines/microvm/runner.go index c08e3d84..4ec712d1 100644 --- a/spindle/engines/microvm/runner.go +++ b/spindle/engines/microvm/runner.go @@ -1,3 +1,5 @@ +//go:build linux + package microvm import ( diff --git a/spindle/engines/microvm/upload_cache_http.go b/spindle/engines/microvm/upload_cache_http.go index 0310ef09..b479616f 100644 --- a/spindle/engines/microvm/upload_cache_http.go +++ b/spindle/engines/microvm/upload_cache_http.go @@ -1,3 +1,5 @@ +//go:build linux + package microvm import ( diff --git a/spindle/engines/microvm/upload_cache_narinfo.go b/spindle/engines/microvm/upload_cache_narinfo.go index 26645fcf..775d20bc 100644 --- a/spindle/engines/microvm/upload_cache_narinfo.go +++ b/spindle/engines/microvm/upload_cache_narinfo.go @@ -1,3 +1,5 @@ +//go:build linux + package microvm import ( diff --git a/spindle/engines/microvm/upload_cache_nix_store.go b/spindle/engines/microvm/upload_cache_nix_store.go index 70b9adde..8ec22c47 100644 --- a/spindle/engines/microvm/upload_cache_nix_store.go +++ b/spindle/engines/microvm/upload_cache_nix_store.go @@ -1,3 +1,5 @@ +//go:build linux + package microvm import ( diff --git a/spindle/engines/microvm/upload_cache_nix_store_test.go b/spindle/engines/microvm/upload_cache_nix_store_test.go index 413fb66d..bf9d4af7 100644 --- a/spindle/engines/microvm/upload_cache_nix_store_test.go +++ b/spindle/engines/microvm/upload_cache_nix_store_test.go @@ -1,3 +1,5 @@ +//go:build linux + package microvm import ( diff --git a/spindle/engines/microvm/upload_cache_proxy.go b/spindle/engines/microvm/upload_cache_proxy.go index cc87062f..cc4bf32e 100644 --- a/spindle/engines/microvm/upload_cache_proxy.go +++ b/spindle/engines/microvm/upload_cache_proxy.go @@ -1,3 +1,5 @@ +//go:build linux + package microvm import ( diff --git a/spindle/engines/microvm/upload_cache_proxy_test.go b/spindle/engines/microvm/upload_cache_proxy_test.go index ef4e6405..5697f12f 100644 --- a/spindle/engines/microvm/upload_cache_proxy_test.go +++ b/spindle/engines/microvm/upload_cache_proxy_test.go @@ -1,3 +1,5 @@ +//go:build linux + package microvm import ( diff --git a/spindle/engines/microvm/vm.go b/spindle/engines/microvm/vm.go index 35c85fa3..14386f9f 100644 --- a/spindle/engines/microvm/vm.go +++ b/spindle/engines/microvm/vm.go @@ -1,3 +1,5 @@ +//go:build linux + package microvm import ( diff --git a/spindle/server.go b/spindle/server.go index f3136d87..f8e582bc 100644 --- a/spindle/server.go +++ b/spindle/server.go @@ -36,7 +36,6 @@ import ( "tangled.org/core/spindle/db" "tangled.org/core/spindle/engine" "tangled.org/core/spindle/engines/dummy" - "tangled.org/core/spindle/engines/microvm" "tangled.org/core/spindle/engines/nixery" "tangled.org/core/spindle/git" "tangled.org/core/spindle/models" @@ -354,7 +353,7 @@ func Run(ctx context.Context) error { return err } - microvmEng, err := microvm.New(ctx, cfg, d) + microvmEng, err := newMicrovmEngine(ctx, cfg, d) if err != nil { return err }