Пример #1
0
        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;
                }
            }
        }
Пример #2
0
        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);
                }
            }
        }
Пример #3
0
        /// <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());
        }