this repo has no description

fix: actually include services....

Changed files
+94
cmd
+61
cmd/bodega/main.go
··· 1 + package main 2 + 3 + import ( 4 + "os" 5 + 6 + "github.com/ClickHouse/clickhouse-go/v2" 7 + "github.com/urfave/cli/v2" 8 + ) 9 + 10 + func main() { 11 + app := cli.App{ 12 + Name: "bodega", 13 + Action: run, 14 + Flags: []cli.Flag{ 15 + &cli.StringFlag{ 16 + Name: "clickhouse-addr", 17 + EnvVars: []string{"PHOTOCOPY_CLICKHOUSE_ADDR"}, 18 + Required: true, 19 + }, 20 + &cli.StringFlag{ 21 + Name: "clickhouse-database", 22 + EnvVars: []string{"PHOTOCOPY_CLICKHOUSE_DATABASE"}, 23 + Required: true, 24 + }, 25 + &cli.StringFlag{ 26 + Name: "clickhouse-user", 27 + EnvVars: []string{"PHOTOCOPY_CLICKHOUSE_USER"}, 28 + Value: "default", 29 + }, 30 + &cli.StringFlag{ 31 + Name: "clickhouse-pass", 32 + EnvVars: []string{"PHOTOCOPY_CLICKHOUSE_PASS"}, 33 + Required: true, 34 + }, 35 + }, 36 + } 37 + 38 + app.Run(os.Args) 39 + } 40 + 41 + var run = func(cmd *cli.Context) error { 42 + conn, err := clickhouse.Open(&clickhouse.Options{ 43 + Addr: []string{cmd.String("clickhouse-addr")}, 44 + Auth: clickhouse.Auth{ 45 + Database: cmd.String("clickhouse-database"), 46 + Username: cmd.String("clickhouse-user"), 47 + Password: cmd.String("clickhouse-pass"), 48 + }, 49 + }) 50 + if err != nil { 51 + return err 52 + } 53 + defer conn.Close() 54 + 55 + var entries []ClickhousePLCEntry 56 + if err := conn.Select(cmd.Context, &entries, "SELECT..."); err != nil { 57 + return err 58 + } 59 + 60 + return nil 61 + }
+28
cmd/bodega/plc_models.go
··· 1 + package main 2 + 3 + import ( 4 + "time" 5 + ) 6 + 7 + type ClickhousePLCEntry struct { 8 + Did string `ch:"did"` 9 + Cid string `ch:"cid"` 10 + Nullified bool `ch:"nullified"` 11 + CreatedAt time.Time `ch:"created_at"` 12 + PlcOpSig string `ch:"plc_op_sig"` 13 + PlcOpPrev string `ch:"plc_op_prev"` 14 + PlcOpType string `ch:"plc_op_type"` 15 + PlcOpServices []string `ch:"plc_op_services"` 16 + PlcOpAlsoKnownAs []string `ch:"plc_op_also_known_as"` 17 + PlcOpRotationKeys []string `ch:"plc_op_rotation_keys"` 18 + PlcTombSig string `ch:"plc_tomb_sig"` 19 + PlcTombPrev string `ch:"plc_tomb_prev"` 20 + PlcTombType string `ch:"plc_tomb_type"` 21 + LegacyOpSig string `ch:"legacy_op_sig"` 22 + LegacyOpPrev string `ch:"legacy_op_prev"` 23 + LegacyOpType string `ch:"legacy_op_type"` 24 + LegacyOpHandle string `ch:"legacy_op_handle"` 25 + LegacyOpService string `ch:"legacy_op_service"` 26 + LegacyOpSigningKey string `ch:"legacy_op_signing_key"` 27 + LegacyOpRecoveryKey string `ch:"legacy_op_recovery_key"` 28 + }
+5
plc_models.go
··· 137 137 che.PlcOpPrev = *pop.Prev 138 138 } 139 139 che.PlcOpType = pop.Type 140 + services := []string{} 141 + for _, s := range pop.Services { 142 + services = append(services, s.Endpoint) 143 + } 144 + che.PlcOpServices = services 140 145 che.PlcOpAlsoKnownAs = pop.AlsoKnownAs 141 146 che.PlcOpRotationKeys = pop.RotationKeys 142 147 if e.Operation.PLCOperation.Services == nil {