public CommandResult Execute() { try { _fileSystemMigrator.Migrate(); var assemblyPaths = Enumerable.Empty <string>(); var workingDirectory = _fileSystem.GetWorkingDirectory(_script); if (workingDirectory != null) { assemblyPaths = _assemblyResolver.GetAssemblyPaths(workingDirectory); } _composer.Compose(workingDirectory); _scriptExecutor.Initialize(assemblyPaths, _scriptPackResolver.GetPacks(), ScriptArgs); var scriptResult = _scriptExecutor.Execute(_script, ScriptArgs); var commandResult = Inspect(scriptResult); _scriptExecutor.Terminate(); return(commandResult); } catch (FileNotFoundException ex) { _logger.ErrorFormat("{0} - '{1}'.", ex, ex.Message, ex.FileName); return(CommandResult.Error); } catch (Exception ex) { _logger.Error(ex); return(CommandResult.Error); } }
public CommandResult Execute() { try { _fileSystemMigrator.Migrate(); var assemblyPaths = Enumerable.Empty <string>(); var workingDirectory = _fileSystem.GetWorkingDirectory(_script); if (workingDirectory != null) { assemblyPaths = _assemblyResolver.GetAssemblyPaths(workingDirectory); } _composer.Compose(workingDirectory); _scriptExecutor.Initialize(assemblyPaths, _scriptPackResolver.GetPacks(), ScriptArgs); // HACK: This is a (dirty) fix for #1086. This might be a temporary solution until some further refactoring can be done. _scriptExecutor.ScriptEngine.CacheDirectory = Path.Combine(workingDirectory ?? _fileSystem.CurrentDirectory, _fileSystem.DllCacheFolder); var scriptResult = _scriptExecutor.Execute(_script, ScriptArgs); var commandResult = Inspect(scriptResult); _scriptExecutor.Terminate(); return(commandResult); } catch (Exception ex) { _logger.ErrorException("Error executing script '{0}'", ex, _script); return(CommandResult.Error); } }
public CommandResult Execute() { _fileSystemMigrator.Migrate(); _console.WriteLine("scriptcs (ctrl-c to exit or :help for help)" + Environment.NewLine); var workingDirectory = _fileSystem.CurrentDirectory; var assemblies = _assemblyResolver.GetAssemblyPaths(workingDirectory); var scriptPacks = _scriptPackResolver.GetPacks(); _composer.Compose(workingDirectory); _repl.Initialize(assemblies, scriptPacks, ScriptArgs); if (!string.IsNullOrWhiteSpace(_scriptName)) { _logger.InfoFormat("Executing script '{0}'", _scriptName); try { _repl.Execute(string.Format("#load {0}", _scriptName)); } catch (Exception ex) { _logger.ErrorException("Error executing script '{0}'", ex, _scriptName); return(CommandResult.Error); } } try { while (ExecuteLine(_repl)) { } _console.WriteLine(); } catch (Exception ex) { _logger.ErrorException("Error executing REPL", ex); return(CommandResult.Error); } _repl.Terminate(); return(CommandResult.Success); }