func RunServiceControl(c *cli.Context) { svcConfig := createServiceConfig(c) s, err := service_helpers.New(&NullService{}, svcConfig) if err != nil { logrus.Fatal(err) } switch c.Command.Name { case "install": err = runServiceInstall(s, c) case "status": err = runServiceStatus(svcConfig.DisplayName, s, c) default: err = service.Control(s, c.Command.Name) } if err != nil { logrus.Fatal(err) } }
func runServiceInstall(s service.Service, c *cli.Context) error { if user := c.String("user"); user == "" && os.Getuid() == 0 { logrus.Fatal("Please specify user that will run gitlab-runner service") } if configFile := c.String("config"); configFile != "" { // try to load existing config config := common.NewConfig() err := config.LoadConfig(configFile) if err != nil { return err } // save config for the first time if !config.Loaded { err = config.SaveConfig(configFile) if err != nil { return err } } } return service.Control(s, "install") }