Small web server to send Wake-on-LAN requests to its local network
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

67 lines
1.0 KiB

package config
import (
"bytes"
"os"
"github.com/BurntSushi/toml"
)
type Device struct {
Alias string `form:"Alias"`
MAC string `form:"MAC"`
IP string `form:"IP"`
}
type config struct {
Server string
PassHash string
SessionTTL float64
StrictCookies bool
Devices []Device
}
var Config config
var configPath string
func init() {
Config = config{
Server: ":8080",
SessionTTL: 10,
StrictCookies: true,
}
// Locations to look for a config file for
checkPaths := []string{
"config.toml",
"config/config.toml",
"/etc/miniwol/config.toml",
}
var err error
for _, path := range checkPaths {
_, err = toml.DecodeFile(path, &Config)
if err == nil {
configPath = path
return
}
}
panic(err)
}
func Save() error {
var buffer bytes.Buffer
var err error
encoder := toml.NewEncoder(&buffer)
err = encoder.Encode(Config)
if err != nil {
return err
}
err = os.WriteFile(configPath, buffer.Bytes(), 0666)
if err != nil {
return err
}
return nil
}