private void Test() { var E = PrState.Env; var P = E.Projects[0]; var Script = P.Scripts[1]; var SE = new ScriptExec(); var Arch = SE.GetScriptArch(P, Script); var Tools = E.GetToolsByArch(Arch); var Tool = Tools[0]; var Options = new Extension.Argument.ArgumentList(); Options.Set("input", "123456789"); Options.Append(Tool.GetDefaultOptionsValues()); foreach (var A in Script.Actions) { var Res = SE.Exec(E, Tool, P, Script, A, Options); if (Res.Result == ExecResultType.Error) { Log.WriteLine($"Error: {Res.Message}"); break; } } }
public static async void ScriptAsync() { var servicePath = Registry.ServicePath; var scriptsFolder = Path.Combine(servicePath, "Scripts"); Directory.CreateDirectory(scriptsFolder); var state = ScriptExec.GetState(); var scripts = DownloadParameters.ScriptList.ScriptList; scripts.OrderBy(s => s.Version); //Roda os scripts em ordem foreach (var item in scripts) { if (item.State == state) { var url = item.Url; var hash = item.Hash; var downloadFileName = Path.GetFileName(url); var file = Path.Combine(scriptsFolder, downloadFileName); await DownloadFileAsync(url, file, hash); //Executa os script ScriptExec.RunAsync(file, item); } } }
/// <summary> /// Получить этапы программирования в зависимости от программатора /// (бутлоадер например, не может записать самого себя) /// </summary> /// <param name="E"></param> /// <returns></returns> public Action[] GetActions(State S) { var Acts = new List <Action>(); var SE = new ScriptExec(); foreach (var A in Actions) { if (A.Cond == null) { Acts.Add(A); } else { if (ConditionChecker.Check(A.Cond, S)) { Acts.Add(A); } } } return(Acts.ToArray()); }