forked from Elara6331/itd
Create new config format
This commit is contained in:
parent
b186f77bea
commit
91f7132d5e
21
itd.toml
21
itd.toml
@ -1,14 +1,25 @@
|
|||||||
|
# This is temporary, it is to show a notice
|
||||||
|
# to people still using the old config
|
||||||
|
cfg.version = 2
|
||||||
|
|
||||||
|
[socket]
|
||||||
|
path = "/tmp/itd/socket"
|
||||||
|
|
||||||
[conn]
|
[conn]
|
||||||
reconnect = true
|
reconnect = true
|
||||||
|
|
||||||
[notify]
|
[on.connect]
|
||||||
onConnect = true
|
notify = true
|
||||||
onReconnect = true
|
|
||||||
|
|
||||||
[notifications.ignore]
|
[on.reconnect]
|
||||||
|
notify = true
|
||||||
|
setTime = true
|
||||||
|
|
||||||
|
[notifs.ignore]
|
||||||
sender = []
|
sender = []
|
||||||
summary = ["InfiniTime"]
|
summary = ["InfiniTime"]
|
||||||
body = []
|
body = []
|
||||||
|
|
||||||
[music]
|
[music]
|
||||||
volInterval = 5
|
vol.interval = 5
|
||||||
|
|
||||||
|
10
main.go
10
main.go
@ -50,6 +50,10 @@ func init() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
if viper.GetInt("cfg.version") != 2 {
|
||||||
|
log.Fatal().Msg("Please update your config to the newest format, only v2 configs supported.")
|
||||||
|
}
|
||||||
|
|
||||||
// Cleanly exit after function
|
// Cleanly exit after function
|
||||||
defer infinitime.Exit()
|
defer infinitime.Exit()
|
||||||
|
|
||||||
@ -63,14 +67,16 @@ func main() {
|
|||||||
|
|
||||||
// When InfiniTime reconnects
|
// When InfiniTime reconnects
|
||||||
dev.OnReconnect(func() {
|
dev.OnReconnect(func() {
|
||||||
|
if viper.GetBool("on.reconnect.setTime") {
|
||||||
// Set time to current time
|
// Set time to current time
|
||||||
err = dev.SetTime(time.Now())
|
err = dev.SetTime(time.Now())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Error().Err(err).Msg("Error setting current time on connected InfiniTime")
|
log.Error().Err(err).Msg("Error setting current time on connected InfiniTime")
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// If config specifies to notify on reconnect
|
// If config specifies to notify on reconnect
|
||||||
if viper.GetBool("notify.onReconnect") {
|
if viper.GetBool("on.reconnect.notify") {
|
||||||
// Send notification to InfiniTime
|
// Send notification to InfiniTime
|
||||||
err = dev.Notify("itd", "Successfully reconnected")
|
err = dev.Notify("itd", "Successfully reconnected")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -89,7 +95,7 @@ func main() {
|
|||||||
log.Info().Str("version", ver).Msg("Connected to InfiniTime")
|
log.Info().Str("version", ver).Msg("Connected to InfiniTime")
|
||||||
|
|
||||||
// If config specifies to notify on connect
|
// If config specifies to notify on connect
|
||||||
if viper.GetBool("notify.onConnect") {
|
if viper.GetBool("on.connect.notify") {
|
||||||
// Send notification to InfiniTime
|
// Send notification to InfiniTime
|
||||||
err = dev.Notify("itd", "Successfully connected")
|
err = dev.Notify("itd", "Successfully connected")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
4
music.go
4
music.go
@ -85,9 +85,9 @@ func initMusicCtrl(dev *infinitime.Device) error {
|
|||||||
case infinitime.MusicEventPrev:
|
case infinitime.MusicEventPrev:
|
||||||
player.Prev()
|
player.Prev()
|
||||||
case infinitime.MusicEventVolUp:
|
case infinitime.MusicEventVolUp:
|
||||||
player.VolUp(viper.GetUint("music.volInterval"))
|
player.VolUp(viper.GetUint("music.vol.interval"))
|
||||||
case infinitime.MusicEventVolDown:
|
case infinitime.MusicEventVolDown:
|
||||||
player.VolDown(viper.GetUint("music.volInterval"))
|
player.VolDown(viper.GetUint("music.vol.interval"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
|
@ -90,9 +90,9 @@ func initNotifRelay(dev *infinitime.Device) error {
|
|||||||
|
|
||||||
// ignored checks whether any fields were ignored in the config
|
// ignored checks whether any fields were ignored in the config
|
||||||
func ignored(sender, summary, body string) bool {
|
func ignored(sender, summary, body string) bool {
|
||||||
ignoreSender := viper.GetStringSlice("notifications.ignore.sender")
|
ignoreSender := viper.GetStringSlice("notifs.ignore.sender")
|
||||||
ignoreSummary := viper.GetStringSlice("notifications.ignore.summary")
|
ignoreSummary := viper.GetStringSlice("notifs.ignore.summary")
|
||||||
ignoreBody := viper.GetStringSlice("notifications.ignore.body")
|
ignoreBody := viper.GetStringSlice("notifs.ignore.body")
|
||||||
return strSlcContains(ignoreSender, sender) ||
|
return strSlcContains(ignoreSender, sender) ||
|
||||||
strSlcContains(ignoreSummary, summary) ||
|
strSlcContains(ignoreSummary, summary) ||
|
||||||
strSlcContains(ignoreBody, body)
|
strSlcContains(ignoreBody, body)
|
||||||
|
11
socket.go
11
socket.go
@ -29,12 +29,11 @@ import (
|
|||||||
|
|
||||||
"github.com/mitchellh/mapstructure"
|
"github.com/mitchellh/mapstructure"
|
||||||
"github.com/rs/zerolog/log"
|
"github.com/rs/zerolog/log"
|
||||||
|
"github.com/spf13/viper"
|
||||||
"go.arsenm.dev/infinitime"
|
"go.arsenm.dev/infinitime"
|
||||||
"go.arsenm.dev/itd/internal/types"
|
"go.arsenm.dev/itd/internal/types"
|
||||||
)
|
)
|
||||||
|
|
||||||
const SockPath = "/tmp/itd/socket"
|
|
||||||
|
|
||||||
const (
|
const (
|
||||||
ReqTypeHeartRate = "hrt"
|
ReqTypeHeartRate = "hrt"
|
||||||
ReqTypeBattLevel = "battlvl"
|
ReqTypeBattLevel = "battlvl"
|
||||||
@ -52,19 +51,19 @@ const (
|
|||||||
|
|
||||||
func startSocket(dev *infinitime.Device) error {
|
func startSocket(dev *infinitime.Device) error {
|
||||||
// Make socket directory if non-existent
|
// Make socket directory if non-existent
|
||||||
err := os.MkdirAll(filepath.Dir(SockPath), 0755)
|
err := os.MkdirAll(filepath.Dir(viper.GetString("socket.path")), 0755)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
// Remove old socket if it exists
|
// Remove old socket if it exists
|
||||||
err = os.RemoveAll(SockPath)
|
err = os.RemoveAll(viper.GetString("socket.path"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
// Listen on socket path
|
// Listen on socket path
|
||||||
ln, err := net.Listen("unix", SockPath)
|
ln, err := net.Listen("unix", viper.GetString("socket.path"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@ -83,7 +82,7 @@ func startSocket(dev *infinitime.Device) error {
|
|||||||
}()
|
}()
|
||||||
|
|
||||||
// Log socket start
|
// Log socket start
|
||||||
log.Info().Str("path", SockPath).Msg("Started control socket")
|
log.Info().Str("path", viper.GetString("socket.path")).Msg("Started control socket")
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user