diff --git a/spindle/engine_microvm_linux.go b/spindle/engine_microvm_linux.go new file mode 100644 index 000000000..5c5551b0a --- /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 000000000..9da4c9fc5 --- /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 ed7578102..cfec1aac0 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 05b370af6..0b4f1c426 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 207983445..273832661 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 16e6183a5..e6b99a0cb 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 a38b0f4e5..cb1de34ce 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 c2f141abc..7bd90c35c 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 13465cd50..5a5aac7b7 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 71518ce85..e32ad3cda 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 3c5f66f0e..1114937c2 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 02f3c0966..f80772c2f 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 b103e4f54..256fe1ecf 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 4a7a8d6ce..e79c077f1 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 1617aa2b1..a50700ef0 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 99f325477..f7ddec42e 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 885e5fe7c..0c019adbb 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 29a6bd195..9df051016 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 c08e3d844..4ec712d16 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 0310ef09f..b479616f4 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 26645fcf1..775d20bcb 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 70b9addeb..8ec22c47a 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 413fb66d9..bf9d4af77 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 cc87062f8..cc4bf32ee 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 ef4e64056..5697f12f5 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 35c85fa3d..14386f9f9 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 cecd2abd7..8b014fd35 100644 --- a/spindle/server.go +++ b/spindle/server.go @@ -39,7 +39,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" @@ -357,7 +356,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 }