start service through api

This commit is contained in:
Fran Jurmanović
2024-07-16 23:39:30 +02:00
parent 6137b55a3c
commit 954fe0ae82
6 changed files with 44 additions and 5 deletions

View File

@@ -35,7 +35,7 @@ func NewApiController(as *service.ApiService, routeGroups *common.RouteGroups) *
// @Summary Return API
// @Description Return API
// @Tags api
// @Success 200 {array} string
// @Success 200 {array} string
// @Router /v1/api [get]
func (ac *ApiController) getFirst(c *fiber.Ctx) error {
apiModel := ac.service.GetFirst(c)
@@ -46,14 +46,23 @@ func (ac *ApiController) getFirst(c *fiber.Ctx) error {
//
// @Summary Return API
// @Description Return API
// @Param name body string true "required"
// @Tags api
// @Success 200 {array} string
// @Success 200 {array} string
// @Router /v1/api [post]
func (ac *ApiController) startServer(c *fiber.Ctx) error {
c.Locals("service", "ACC-Server")
model := new(Service)
if err := c.BodyParser(model); err != nil {
c.SendStatus(400)
}
c.Locals("service", model.Name)
apiModel, err := ac.service.ApiStartServer(c)
if err != nil {
return c.SendStatus(400)
}
return c.SendString(apiModel)
}
type Service struct {
Name string `json:"name" xml:"name" form:"name"`
}

View File

@@ -1,15 +0,0 @@
param (
[string]$Action,
[string]$ServiceName
)
if ($Action -eq "start") {
sc.exe start $ServiceName
} elseif ($Action -eq "stop") {
sc.exe stop $ServiceName
} elseif ($Action -eq "restart") {
sc.exe stop $ServiceName
sc.exe start $ServiceName
} else {
Write-Error "Invalid action specified. Use 'start', 'stop', or 'restart'."
}

View File

@@ -58,10 +58,11 @@ func Find[T any](lst *[]T, callback func(item *T) bool) *T {
}
func RunElevatedCommand(command string, service string) (string, error) {
cmd := exec.Command("powershell", "-File", "run_sc.ps1", command, service)
cmd := exec.Command("powershell", "-nologo", "-noprofile", "-File", "run_sc.ps1", command, service)
output, err := cmd.CombinedOutput()
if err != nil {
return "", fmt.Errorf("error: %v, output: %s", err, output)
log.Panic("error: %v, output: %s", err, string(output))
return "", fmt.Errorf("error: %v, output: %s", err, string(output))
}
return string(output), nil
}