From 4cf95a18c05d82cea965d8f689e058cefb4326bf Mon Sep 17 00:00:00 2001 From: "Alexander \"Arav\" Andreev" Date: Mon, 10 Oct 2022 00:18:17 +0400 Subject: [PATCH] Only short flags left. version() and printWatchedProcesses() funcs are removed and its body was moved in-place. --- main.go | 91 ++++++++++++++++++++------------------------------------- 1 file changed, 32 insertions(+), 59 deletions(-) diff --git a/main.go b/main.go index e3bdf7b..bcb9b8d 100644 --- a/main.go +++ b/main.go @@ -9,72 +9,62 @@ import ( "syscall" ) +var configPath *string = flag.String("c", "config.conf", "path to configuration file") +var showVersion *bool = flag.Bool("v", false, "show version") +var listProcesses *bool = flag.Bool("l", false, "list watched processes") + +var addProcess *string = flag.String("a", "", "add process to list") +var removeProcess *string = flag.String("r", "", "remove process from list") + func main() { - var oConfigPath string - var oShowVersion bool - var oListProcesses bool - - var oAddProcess string - var oRemoveProcess string - log.SetFlags(0) - - flag.StringVar(&oConfigPath, "config", "config.conf", "path to configuration file") - flag.StringVar(&oConfigPath, "c", "config.conf", "path to configuration file (shorthand)") - - flag.BoolVar(&oShowVersion, "version", false, "show version") - flag.BoolVar(&oShowVersion, "v", false, "show version (shorthand)") - - flag.BoolVar(&oListProcesses, "list", false, "list watched processes") - flag.BoolVar(&oListProcesses, "l", false, "list watched processes (shorthand)") - - flag.StringVar(&oAddProcess, "add", "", "add process to list") - flag.StringVar(&oAddProcess, "a", "", "add process to list (shorthand)") - - flag.StringVar(&oRemoveProcess, "remove", "", "remove process from list") - flag.StringVar(&oRemoveProcess, "r", "", "remove process from list (shorthand)") - flag.Parse() - if oShowVersion { - version() + if *showVersion { + fmt.Println("httpprocprobed ver. 2.0.0") + fmt.Println("Copyright (c) 2021,2022 Alexander \"Arav\" Andreev ") + fmt.Println("This program is licensed under terms of MIT+NIGGER license a copy") + fmt.Println("of wich is located in /usr/share/licenses/httpprocprobed/LICENSE.") os.Exit(0) } - conf, err := LoadConfiguration(oConfigPath) + conf, err := LoadConfiguration(*configPath) if err != nil { - log.Fatalf("Cannot load configuration file: %s\n", err) + log.Fatalf("[ERR] Cannot load configuration file: %s\n", err) } - if oListProcesses { - printWatchedProcesses(&conf.Processes) + if *listProcesses { + for _, v := range conf.Processes { + fmt.Printf("%s, ", v) + } + fmt.Println() os.Exit(0) } - if oAddProcess != "" { - err := conf.AddProcess(oAddProcess, oConfigPath) + if *addProcess != "" { + err := conf.AddProcess(*addProcess, *configPath) if err != nil { - log.Fatalf("Cannot add process: %s\n", err) + log.Fatalf("[ERR] Cannot add process: %s\n", err) } } - if oRemoveProcess != "" { - err := conf.RemoveProcess(oRemoveProcess, oConfigPath) + if *removeProcess != "" { + err := conf.RemoveProcess(*removeProcess, *configPath) if err != nil { - log.Fatalf("Cannot remove process: %s\n", err) + log.Fatalf("[ERR] Cannot remove process: %s\n", err) } } // If we modified a list then let's look for a running program and // send SIGHUP to it to reload a list. Here we assume that there // is only one process running, so we just filter our PID. - if oAddProcess != "" || oRemoveProcess != "" { - if err := conf.StoreConfiguration(oConfigPath); err != nil { - log.Fatalf("Cannot write configuration. Error: %s\n", err) + if *addProcess != "" || *removeProcess != "" { + if err := conf.StoreConfiguration(*configPath); err != nil { + log.Fatalf("[ERR] Cannot write configuration. Error: %s\n", err) } - pids, _ := GetProcessPIDs("httpprocwatchd") - if pids != nil && len(pids) > 1 { + pids, _ := GetProcessPIDs("httpprocprobed") + if len(pids) > 1 { var trgt_pid int if pids[0] == os.Getpid() { trgt_pid = pids[1] @@ -95,19 +85,18 @@ func main() { syssignal := make(chan os.Signal, 1) signal.Notify(syssignal, os.Interrupt, syscall.SIGINT, syscall.SIGTERM, syscall.SIGHUP) - log.Printf("httpprocwatchd is running on \"%s\".", conf.ListenAddress) + log.Printf("httpprocprobed is running on \"%s\".", conf.ListenAddress) for { switch <-syssignal { case os.Interrupt: fallthrough case syscall.SIGINT | syscall.SIGTERM: - log.Println("Shutting down... ") ShutdownHTTPServer(srv) log.Println("Server shutted down.") os.Exit(0) case syscall.SIGHUP: - newconf, err := LoadConfiguration(oConfigPath) + newconf, err := LoadConfiguration(*configPath) if err != nil { log.Fatalf("Failed to reload a list of processes from configuration: %s\n", err) } @@ -116,19 +105,3 @@ func main() { } } } - -// printWatchedProcesses prints a list of processes being watched. -func printWatchedProcesses(processes *[]string) { - for _, v := range *processes { - fmt.Printf("%s, ", v) - } - fmt.Println() -} - -// version prints information about program. -func version() { - fmt.Println("httpprocwatchd ver. 1.3.2") - fmt.Println("Copyright (c) 2021,2022 Alexander \"Arav\" Andreev ") - fmt.Println("This program is licensed under terms of MIT+NIGGER license a copy") - fmt.Println("of wich is located in /usr/share/licenses/httpprocwatchd/LICENSE.") -}