public static IScriptServicesBuilder Create(Config config, string[] scriptArgs) { Guard.AgainstNullArgument("commandArgs", config); Guard.AgainstNullArgument("scriptArgs", scriptArgs); IConsole console = new ScriptConsole(); if (!string.IsNullOrWhiteSpace(config.OutputFile)) { console = new FileConsole(config.OutputFile, console); } var logProvider = new ColoredConsoleLogProvider(config.LogLevel, console); var initializationServices = new InitializationServices(logProvider); initializationServices.GetAppDomainAssemblyResolver().Initialize(); // NOTE (adamralph): this is a hideous assumption about what happens inside the CommandFactory. // It is a result of the ScriptServicesBuilderFactory also having to know what is going to happen inside the // Command Factory so that it builds the builder(:-p) correctly in advance. // This demonstrates the technical debt that exists with the ScriptServicesBuilderFactory and CommandFactory // in their current form. We have a separate refactoring task raised to address this. var repl = config.Repl || (!config.Clean && config.PackageName == null && !config.Save && config.ScriptName == null); var scriptServicesBuilder = new ScriptServicesBuilder(console, logProvider, null, null, initializationServices) .Cache(config.Cache) .Debug(config.Debug) .LogLevel(config.LogLevel) .ScriptName(config.ScriptName) .Repl(repl); return(scriptServicesBuilder.LoadModules(Path.GetExtension(config.ScriptName) ?? ".csx", config.Modules)); }
private ScriptServices CreateScriptServices() { var console = new ScriptConsole(); var logProvider = new ColoredConsoleLogProvider(LogLevel.Info, console); var initializationServices = new InitializationServices(logProvider); initializationServices.GetAppDomainAssemblyResolver().Initialize(); var scriptServicesBuilder = new ScriptServicesBuilder(console, logProvider, null, null, initializationServices); scriptServicesBuilder.Overrides[typeof(IFileSystem)] = _options.FileSystem; scriptServicesBuilder.LoadScriptPacks(); scriptServicesBuilder.LoadModules(".csx", _options.Modules); var scriptServices = scriptServicesBuilder.Build(); var assemblies = scriptServices.AssemblyResolver.GetAssemblyPaths(_options.FileSystem.CurrentDirectory, true); var packs = scriptServices.ScriptPackResolver.GetPacks(); scriptServices.Executor.Initialize(assemblies, packs, _options.ScriptArgs); scriptServices.Executor.AddReferences(typeof(Attribute), typeof(ExportAttribute)); scriptServices.Executor.ImportNamespaces("System.ComponentModel.Composition"); if (_options.References != null) { scriptServices.Executor.AddReferenceAndImportNamespaces(_options.References); } return(scriptServices); }
public void Initialize() { var console = (IConsole) new ScriptConsole(); var logProvider = new ColoredConsoleLogProvider(LogLevel.Info, console); var builder = new ScriptServicesBuilder(console, logProvider); builder.ScriptEngine <CSharpScriptEngine>(); var services = builder.Build(); Executor = (ScriptExecutor)services.Executor; Executor.Initialize(Enumerable.Empty <string>(), Enumerable.Empty <IScriptPack>()); }
public static void Main(string[] args) { var console = (IConsole) new ScriptConsole(); var logProvider = new ColoredConsoleLogProvider(LogLevel.Info, console); var builder = new ScriptServicesBuilder(console, logProvider); SetEngine(builder); var services = builder.Build(); var executor = (ScriptExecutor)services.Executor; executor.Initialize(Enumerable.Empty <string>(), Enumerable.Empty <IScriptPack>()); ExecuteLooseScript(executor); ExecuteFile(executor); }
static void Main(string[] args) { var console = (IConsole) new ScriptConsole(); var logProvider = new ColoredConsoleLogProvider(LogLevel.Info, console); var builder = new ScriptServicesBuilder(console, logProvider); builder.ScriptHostFactory <DictionaryScriptHostFactory>(); SetEngine(builder); var services = builder.Build(); var executor = (ScriptExecutor)services.Executor; //add the Message reference and using so we can use the Message type. executor.AddReferences(typeof(Message).Assembly); executor.ImportNamespaces("DynamicHostExample"); executor.Initialize(Enumerable.Empty <string>(), Enumerable.Empty <IScriptPack>()); ExecuteLooseScript(executor); Console.ReadLine(); }
public ScriptCsExtension(ScriptCsOptions options) { this.options = options; var console = (IConsole) new ScriptConsole(); var logProvider = new ColoredConsoleLogProvider(LogLevel.Info, console); var builder = new ScriptServicesBuilder(console, logProvider); //var useMono = Type.GetType("Mono.Runtime") != null; //if (useMono) //{ // builder.ScriptEngine<MonoScriptEngine>(); //} //else { builder.ScriptEngine <CSharpScriptEngine>(); //} scriptServices = builder.Build(); scriptExecutor = (ScriptExecutor)scriptServices.Executor; scriptExecutor.Initialize(Enumerable.Empty <string>(), Enumerable.Empty <IScriptPack>()); }