Deployment and lifecycle management for Nix
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

client-go: iterate on seed types

+58 -4
+7 -4
client-go/main.go
··· 5 5 "net/url" 6 6 "os" 7 7 "strings" 8 - "time" 9 8 10 9 "github.com/golang-jwt/jwt/v5" 11 10 "github.com/knadh/koanf/parsers/toml/v2" ··· 97 96 log.Debug().Any("config", config).Msg("") 98 97 99 98 socket := phx.NewSocket(&config.endpoint) 100 - socket.HeartbeatInterval = 60 * time.Second 101 99 zerologLogger := logger{} 102 100 socket.Logger = &zerologLogger 103 101 ··· 130 128 log.Error().Err(err).Msg("failed to join dedicated channel") 131 129 } 132 130 133 - seedPush, err := dedicatedChannel.Push("seed:submit", map[string]any{"name": "blank", "seed_type": "nixos", "out_path": "/nix/store/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaabb-nixos-system-blank-24.11.20240716.ad0b5ee"}) 131 + // seedPush, err := dedicatedChannel.Push("seed:submit", map[string]any{"name": "blank", "seed_type": "nixos", "out_path": "/nix/store/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaabb-nixos-system-blank-24.11.20240716.ad0b5ee"}) 132 + // seed := NewSeed("blank", "nixos", "/nix/store/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaabb-nixos-system-blank-24.11.20240716.ad0b5ee") 133 + seed := NewSeed("blank", "home-manager", "/nix/store/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaabb-nixos-system-blank-24.11.20240716.ad0b5ee") 134 + seedPush, err := dedicatedChannel.Push("seed:submit", seed) 134 135 if err != nil { 135 136 log.Error().Err(err).Msg("failed to push seed:submit") 136 137 } 137 138 seedPush.Receive("ok", func(response any) { 138 - log.Info().Msgf("%v", response.(map[string]interface{})["seed_id"].(string)) 139 + seed_id := response.(map[string]interface{})["seed_id"].(string) 140 + log.Info().Any("seed", seed).Str("seed_id", seed_id).Msgf("Received seed id") 141 + seed.Activate() 139 142 }) 140 143 141 144 select {}
+51
client-go/seed.go
··· 1 + package main 2 + 3 + import "github.com/rs/zerolog/log" 4 + 5 + type Seed interface { 6 + Activate() error 7 + Download() error 8 + } 9 + 10 + type GenericSeed struct { 11 + Name string `json:"name"` 12 + OutPath string `json:"out_path"` 13 + SeedType string `json:"seed_type"` 14 + } 15 + 16 + func NewSeed(name, seed_type, out_path string) Seed { 17 + switch seed_type { 18 + case "nixos": 19 + return &NixosSeed{ 20 + GenericSeed: GenericSeed{Name: name, 21 + OutPath: out_path, 22 + SeedType: seed_type, 23 + }, 24 + } 25 + } 26 + 27 + return &GenericSeed{ 28 + Name: name, 29 + OutPath: out_path, 30 + SeedType: seed_type, 31 + } 32 + } 33 + 34 + func (d *GenericSeed) Activate() error { 35 + log.Debug().Msgf("Activating seed %s", d.Name) 36 + return nil 37 + } 38 + 39 + func (d *GenericSeed) Download() error { 40 + log.Debug().Msgf("Downloading seed %s", d.Name) 41 + return nil 42 + } 43 + 44 + type NixosSeed struct { 45 + GenericSeed 46 + } 47 + 48 + func (d *NixosSeed) Activate() error { 49 + log.Debug().Msg("Nixos is a different activation") 50 + return nil 51 + }