diff --git a/cmd/showbridge/main.go b/cmd/showbridge/main.go index c4b5b25..8cc68cb 100644 --- a/cmd/showbridge/main.go +++ b/cmd/showbridge/main.go @@ -2,7 +2,6 @@ package main import ( "context" - "encoding/json" "fmt" "log/slog" "os" @@ -10,6 +9,7 @@ import ( "github.com/jwetzell/showbridge-go" "github.com/urfave/cli/v3" + "sigs.k8s.io/yaml" ) func main() { @@ -18,7 +18,7 @@ func main() { Flags: []cli.Flag{ &cli.StringFlag{ Name: "config", - Value: "./config.json", + Value: "./config.yaml", }, }, Action: func(ctx context.Context, c *cli.Command) error { @@ -63,7 +63,7 @@ func readConfig(configPath string) (showbridge.Config, error) { config := showbridge.Config{} - err = json.Unmarshal(configBytes, &config) + err = yaml.Unmarshal(configBytes, &config) if err != nil { return showbridge.Config{}, err } diff --git a/config.json b/config.json deleted file mode 100644 index 4943cd8..0000000 --- a/config.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "modules": [ - { - "id": "http", - "type": "net.http.server", - "params": { - "port": 3000 - } - }, - { - "id": "udp", - "type": "net.udp.client", - "params": { - "host": "127.0.0.1", - "port": 8000 - } - } - ], - "routes": [ - { - "input": "http", - "processors": [ - { - "type":"osc.message.create", - "params": { - "address": "{{.URL.Path}}" - } - }, - { - "type": "osc.message.encode" - } - ], - "output": "udp" - } - ] -} diff --git a/config.yaml b/config.yaml new file mode 100644 index 0000000..e53973c --- /dev/null +++ b/config.yaml @@ -0,0 +1,18 @@ +modules: + - id: http + type: net.http.server + params: + port: 3000 + - id: udp + type: net.udp.client + params: + host: 127.0.0.1 + port: 8000 +routes: + - input: http + processors: + - type: osc.message.create + params: + address: "{{.URL.Path}}" + - type: osc.message.encode + output: udp diff --git a/go.mod b/go.mod index 40352be..b33ae8b 100644 --- a/go.mod +++ b/go.mod @@ -7,10 +7,12 @@ require ( github.com/jwetzell/osc-go v0.0.0-20251114203632-24077a77d6c7 github.com/urfave/cli/v3 v3.6.0 gitlab.com/gomidi/midi/v2 v2.3.16 + sigs.k8s.io/yaml v1.6.0 ) require ( github.com/gorilla/websocket v1.5.3 // indirect + go.yaml.in/yaml/v2 v2.4.2 // indirect golang.org/x/net v0.44.0 // indirect golang.org/x/sync v0.17.0 // indirect ) diff --git a/go.sum b/go.sum index a32dd2f..e4967df 100644 --- a/go.sum +++ b/go.sum @@ -2,6 +2,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/eclipse/paho.mqtt.golang v1.5.1 h1:/VSOv3oDLlpqR2Epjn1Q7b2bSTplJIeV2ISgCl2W7nE= github.com/eclipse/paho.mqtt.golang v1.5.1/go.mod h1:1/yJCneuyOoCOzKSsOTUc0AJfpsItBGWvYpBLimhArU= +github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= +github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/gorilla/websocket v1.5.3 h1:saDtZ6Pbx/0u+bgYQ3q96pZgCzfhKXGPqt7kZ72aNNg= github.com/gorilla/websocket v1.5.3/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/jwetzell/osc-go v0.0.0-20251114203632-24077a77d6c7 h1:vR4ooQd95vO8pdCugY0Kg7/MSKvuJc0pkHUZlLf6AtM= @@ -14,9 +16,17 @@ github.com/urfave/cli/v3 v3.6.0 h1:oIdArVjkdIXHWg3iqxgmqwQGC8NM0JtdgwQAj2sRwFo= github.com/urfave/cli/v3 v3.6.0/go.mod h1:ysVLtOEmg2tOy6PknnYVhDoouyC/6N42TMeoMzskhso= gitlab.com/gomidi/midi/v2 v2.3.16 h1:yufWSENyjnJ4LFQa9BerzUm4E4aLfTyzw5nmnCteO0c= gitlab.com/gomidi/midi/v2 v2.3.16/go.mod h1:jDpP4O4skYi+7iVwt6Zyp18bd2M4hkjtMuw2cmgKgfw= +go.yaml.in/yaml/v2 v2.4.2 h1:DzmwEr2rDGHl7lsFgAHxmNz/1NlQ7xLIrlN2h5d1eGI= +go.yaml.in/yaml/v2 v2.4.2/go.mod h1:081UH+NErpNdqlCXm3TtEran0rJZGxAYx9hb/ELlsPU= +go.yaml.in/yaml/v3 v3.0.3 h1:bXOww4E/J3f66rav3pX3m8w6jDE4knZjGOw8b5Y6iNE= +go.yaml.in/yaml/v3 v3.0.3/go.mod h1:tBHosrYAkRZjRAOREWbDnBXUf08JOwYq++0QNwQiWzI= golang.org/x/net v0.44.0 h1:evd8IRDyfNBMBTTY5XRF1vaZlD+EmWx6x8PkhR04H/I= golang.org/x/net v0.44.0/go.mod h1:ECOoLqd5U3Lhyeyo/QDCEVQ4sNgYsqvCZ722XogGieY= golang.org/x/sync v0.17.0 h1:l60nONMj9l5drqw6jlhIELNv9I0A4OFgRsG9k2oT9Ug= golang.org/x/sync v0.17.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +sigs.k8s.io/yaml v1.6.0 h1:G8fkbMSAFqgEFgh4b1wmtzDnioxFCUgTZhlbj5P9QYs= +sigs.k8s.io/yaml v1.6.0/go.mod h1:796bPqUfzR/0jLAl6XjHl3Ck7MiyVv8dbTdyT3/pMf4=