func main() { defer func() { if r := recover(); r != nil { log.Fatalf("Service ERROR: %s", getStringFromRecovery(r)) } }() a := &app{} args := []string{} if len(*service.ServiceFlag) > 0 { args = flag.Args() if *serviceName == "" { panic("The service name is required") } if *service.ServiceFlag == "install" { if len(args) == 0 { panic("The list of arguments cannot be empty") } } } combinedArgs := []string{ "-name", *serviceName, } combinedArgs = append(combinedArgs, args...) service.NewServiceRunnerBuilder(*serviceName, a). WithAdditionalArguments(combinedArgs...). WithOnStopHandler(a). WithServiceUserName_AsCurrentUser(). Run() }
func main() { fmt.Println("Version " + TempVersion) flag.Parse() if len(*genpemFlag) > 0 { err := shared.GenerateKeyPairPemFile(*genpemFlag) if err != nil { log.Fatalf("Unable to generate key pair pem file, error: %s", err.Error()) } return } if len(*genpubFromPemFlag) > 0 { err := shared.PrintPemFilePublicKeyAsHex(*genpubFromPemFlag) if err != nil { log.Fatalf("Unable to generate public key from pem file, error: %s", err.Error()) } return } var additionalArgs []string = []string{} if len(*service.ServiceFlag) == 0 || (*service.ServiceFlag != "uninstall" && *service.ServiceFlag != "stop" && *service.ServiceFlag != "start") { if len(*serverPemFlag) == 0 { flag.Usage() log.Fatalln("The server pem flag is required.") } if len(*allowedPublicKeysFileFlag) == 0 { flag.Usage() log.Fatalln("No allowed public keys file specified, no keys will be allowed.") } additionalArgs = []string{ "-address", *addressFlag, "-server_pem", *serverPemFlag, "-allowed_public_keys_file", *allowedPublicKeysFileFlag, } } a := &app{ debugMode: true, accessLogger: true, } builder := service.NewServiceRunnerBuilder("GoPsExec", a).WithOnStopHandler(a).WithAdditionalArguments(additionalArgs...) if len(*serviceUsernameFlag) > 0 { if *serviceUsernameFlag == CURRENT_USER_VAL { builder = builder.WithServiceUserName_AsCurrentUser() } else { builder = builder.WithServiceUserName(*serviceUsernameFlag) } } if len(*servicePasswordFlag) > 0 { builder = builder.WithServicePassword(*servicePasswordFlag) } builder.Run() }
func main() { a := &app{} service.NewServiceRunnerBuilder("Script Watcher", a).WithOnStopHandler(a).WithServiceUserName_AsCurrentUser().Run() }