// Command line tool to manage remote hosts // SPDX-License-Identifier: GPL-3.0-or-later // Copyright (C) 2021-2024 Simon Ruderich package main import ( "log" "os" "ruderich.org/simon/safcm/cmd/safcm/config" ) func usage() { log.SetFlags(0) log.Fatalf("usage: %[1]s sync [] \n"+ " %[1]s fixperms\n"+ " %[1]s version\n"+ "", os.Args[0]) } func main() { if len(os.Args) < 2 { usage() } var err error switch os.Args[1] { case "sync": err = MainSync(os.Args) case "fixperms": if len(os.Args) != 2 { usage() } err = MainFixperms() case "version": if len(os.Args) != 2 { usage() } err = MainVersion() default: usage() } if err != nil { log.Fatal(err) } } func LoadBaseFiles() (*config.Config, *config.Hosts, map[string][]string, error) { cfg, err := config.LoadConfig() if err != nil { return nil, nil, nil, err } hosts, err := config.LoadHosts() if err != nil { return nil, nil, nil, err } groups, err := config.LoadGroups(cfg, hosts) if err != nil { return nil, nil, nil, err } return cfg, hosts, groups, nil }