コード例 #1
0
 public ITask Create(TaskEnvironment environment, XElement definition) {
     if (definition.Name.LocalName == "task") {
         var name = definition.Attr("code");
         if (string.IsNullOrWhiteSpace(name)) {
             throw new Exception("invalid generic task - no code");
         }
         var gt = ResolveService<ITask>(name);
         if (null == gt) {
             throw new Exception("no configured task with name " + name);
         }
         return gt;
     }
     else {
         var name = "qorpent.tasks." + definition.Name.LocalName.ToLowerInvariant()+".task";
         var deft = ResolveService<ITask>(name);
         return deft;
     }
 }
コード例 #2
0
ファイル: TaskProcess.cs プロジェクト: Qorpent/qorpent.sys
        public int Execute(TaskConsoleParameters args) {
            var context = BSharpCompiler.CompileDirectory(args.ScriptDirectory,
                new BSharpConfig {Global = new Scope(args.Global),KeepLexInfo = true});
            var cls = context[args.ScriptClass];
            if (null == cls) {
                throw new Exception("cannot find class " + args.ScriptClass);
            }
            var container = ContainerFactory.CreateDefault();
            container.RegisterAssembly(typeof (TaskProcess).Assembly);

            var configProvider = new GenericConfiguration(cls.Compiled, context) {Custom = args};
            container.Set<IConfigProvider>(configProvider);
            Loggy.Manager = container.Get<ILoggyManager>();
            var defloggy = Loggy.Manager.Get();
            defloggy.Level = args.LogLevel;
            var consoleAppender = defloggy.Appenders.OfType<ConsoleAppender>().FirstOrDefault();
            if (null == consoleAppender) {
                defloggy.Appenders.Add(new ConsoleAppender {
                    Format = args.LogFormat,
                    Level = args.LogLevel,
                    Manager = Loggy.Manager
                });
            }
            else {
                consoleAppender.Format = args.LogFormat;
                consoleAppender.Level = args.LogLevel;
            }
            var loggy = Loggy.Manager.Get("bcinst");
            var installRequest = new TaskEnvironment {
                Config = cls.Compiled,
                Context = context,
                Log = loggy,
                Globals = new Scope(args.Global),
                Targets = args.Targets.ToArray()
            };
            var processor = container.Get<ITaskProcessor>();
            processor.Execute(installRequest);
            return 0;
        }
コード例 #3
0
ファイル: CompoundTask.cs プロジェクト: Qorpent/qorpent.sys
        public override void Initialize(TaskEnvironment environment, ITask parent, XElement config) {
            base.Initialize(environment, parent, config);

            SetupTasks(environment, Main, config);
        }
コード例 #4
0
 public override void Initialize(TaskEnvironment environment, ITask parent, XElement config)
 {
     base.Initialize(environment, parent, config);
     CommandText = config.AttrOrValue("script");
 }