mirror of https://github.com/curusarn/resh
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.
58 lines
1.1 KiB
58 lines
1.1 KiB
package main
|
|
|
|
import (
|
|
"flag"
|
|
"fmt"
|
|
"os"
|
|
"os/user"
|
|
"path/filepath"
|
|
"strings"
|
|
|
|
"github.com/BurntSushi/toml"
|
|
"github.com/curusarn/resh/pkg/cfg"
|
|
)
|
|
|
|
func main() {
|
|
usr, _ := user.Current()
|
|
dir := usr.HomeDir
|
|
configPath := filepath.Join(dir, ".config/resh.toml")
|
|
|
|
var config cfg.Config
|
|
_, err := toml.DecodeFile(configPath, &config)
|
|
if err != nil {
|
|
fmt.Println("Error reading config", err)
|
|
os.Exit(1)
|
|
}
|
|
|
|
configKey := flag.String("key", "", "Key of the requested config entry")
|
|
flag.Parse()
|
|
|
|
if *configKey == "" {
|
|
fmt.Println("Error: expected option --key!")
|
|
os.Exit(1)
|
|
}
|
|
|
|
*configKey = strings.ToLower(*configKey)
|
|
switch *configKey {
|
|
case "bindcontrolr":
|
|
printBoolNormalized(config.BindControlR)
|
|
case "port":
|
|
fmt.Println(config.Port)
|
|
case "sesswatchperiodseconds":
|
|
fmt.Println(config.SesswatchPeriodSeconds)
|
|
case "sesshistinithistorysize":
|
|
fmt.Println(config.SesshistInitHistorySize)
|
|
default:
|
|
fmt.Println("Error: illegal --key!")
|
|
os.Exit(1)
|
|
}
|
|
}
|
|
|
|
// this might be unnecessary but I'm too lazy to look it up
|
|
func printBoolNormalized(x bool) {
|
|
if x {
|
|
fmt.Println("true")
|
|
} else {
|
|
fmt.Println("false")
|
|
}
|
|
}
|
|
|