func parseMonitor(monitorAction *models.Action) Monitor { monitorRunAction := monitorAction.GetRunAction() if monitorRunAction == nil { return Monitor{} } var port uint16 var uri string for i, arg := range monitorRunAction.Args { if arg == "-port" && len(monitorRunAction.Args) > i+1 { if p, err := strconv.ParseUint(monitorRunAction.Args[i+1], 0, 16); err == nil { port = uint16(p) } } else if arg == "-uri" && len(monitorRunAction.Args) > i+1 { uri = monitorRunAction.Args[i+1] } } if port != 0 || uri != "" { return Monitor{ Port: port, URI: uri, } } else { return Monitor{ Command: monitorRunAction.Path, CommandArgs: monitorRunAction.Args, } } }