/// <summary> /// Executes a script from the configuration. /// </summary> /// <param name="script"></param> /// <returns>CLI return code.</returns> private int ExecuteConfigScript(Models.Script script) { int result = 0; List <ScriptPart> scriptParts = script.GetScriptParts(); foreach (ScriptPart part in scriptParts) { if (part.Program != Constants.ProgramKsc) { _logger.StartExternalProcessExecution(part); result = StartExternalProcess(part); if (result != 0) { break; } _logger.StopExternalProcessExecution(part); } else { result = ActionDispatcher.Dispatch(part.Arguments.Split(' '), false); } } return(result); }
private static string Getbody(FrontContext context, Models.Script script) { string result = null; if (script != null && script.Body != null) { if (script.Extension == null || script.Extension == "js" || script.Extension == ".js") { result = script.Body; } else { var engines = Kooboo.Sites.Engine.Manager.GetScript(); var find = engines.Find(o => o.Extension == script.Extension); if (find != null) { result = find.Execute(context.RenderContext, script.Body); } else { result = script.Body; } } } return(result); }
/// <summary> /// Runs the run action. /// </summary> /// <returns></returns> public override int Run() { int result = 0; SanitizedConfiguration config = LoadConfiguration(); if (IsKerboscript(_options.Script) == true) { string fullScriptPath = Path.GetFullPath(_options.Script); _logger.StartKerboscriptExecution(fullScriptPath); result = ExecuteKerboscript(fullScriptPath, config); if (result == 0) { _logger.StopKerboscriptExecution(fullScriptPath); } } else { if (config != null) { Models.Script script = config.Scripts.Find(s => s.Name == _options.Script); if (script != null) { result = ExecuteConfigScript(script); } else { _logger.ScriptNotFound(_options.Script); result = 1; } } } return(result); }
public static Models.ValidationResult AddScript(Models.Script script) { using (var uow = new DAL.UnitOfWork()) { var validationResult = ValidateScript(script, true); if (validationResult.IsValid) { uow.ScriptRepository.Insert(script); validationResult.IsValid = uow.Save(); } return(validationResult); } }
public static Models.ValidationResult UpdateScript(Models.Script script) { using (var uow = new DAL.UnitOfWork()) { var validationResult = ValidateScript(script, false); if (validationResult.IsValid) { uow.ScriptRepository.Update(script, script.Id); validationResult.IsValid = uow.Save(); } return(validationResult); } }
public static Models.ValidationResult ValidateScript(Models.Script script, bool isNewScript) { var validationResult = new Models.ValidationResult(); if (string.IsNullOrEmpty(script.Name) || !script.Name.All(c => char.IsLetterOrDigit(c) || c == '_')) { validationResult.IsValid = false; validationResult.Message = "Script Name Is Not Valid"; return(validationResult); } if (isNewScript) { using (var uow = new DAL.UnitOfWork()) { if (uow.ScriptRepository.Exists(h => h.Name == script.Name)) { validationResult.IsValid = false; validationResult.Message = "This Script Already Exists"; return(validationResult); } } } else { using (var uow = new DAL.UnitOfWork()) { var originalScript = uow.ScriptRepository.GetById(script.Id); if (originalScript.Name != script.Name) { if (uow.ScriptRepository.Exists(h => h.Name == script.Name)) { validationResult.IsValid = false; validationResult.Message = "This Script Already Exists"; return(validationResult); } } } } return(validationResult); }
public ScriptAssertion(Models.Script script, bool canIdNull = false) : base() { if (script == null) { throw new Exception("O parâmetro passo não pode ser nulo [classe ScriptAssertion]"); } if (!canIdNull) { if (script.Id == Guid.Empty) { SetNofication("500", "O ID não pode ser nulo"); } } if (script.PassoId == Guid.Empty) { SetNofication("500", "O ID do Passo não pode ser nulo"); } if (string.IsNullOrEmpty(script.NomeScript)) { SetNofication("500", "Informe a Nome"); } if (string.IsNullOrEmpty(script.DescricaoScript)) { SetNofication("500", "Informe a Descrição"); } if (!Enum.IsDefined(typeof(Enums.TipoScript), script.TipoScript)) { SetNofication("500", "Tipo de script"); } if (string.IsNullOrEmpty(script.Mnemonico)) { SetNofication("500", "Informe o Mnemônico"); } }