55
66namespace ScriptCs . Command
77{
8- internal class ExecuteScriptCommand : IScriptCommand
8+ internal class ExecuteScriptCommand : ExecuteScriptCommandBase , IScriptCommand
99 {
10- private readonly string _script ;
11- private readonly IFileSystem _fileSystem ;
12- private readonly IScriptExecutor _scriptExecutor ;
13- private readonly IScriptPackResolver _scriptPackResolver ;
14- private readonly ILog _logger ;
15- private readonly IAssemblyResolver _assemblyResolver ;
16- private readonly IFileSystemMigrator _fileSystemMigrator ;
17- private readonly IScriptLibraryComposer _composer ;
18-
1910 public ExecuteScriptCommand (
20- string script ,
21- string [ ] scriptArgs ,
22- IFileSystem fileSystem ,
23- IScriptExecutor scriptExecutor ,
24- IScriptPackResolver scriptPackResolver ,
25- ILogProvider logProvider ,
26- IAssemblyResolver assemblyResolver ,
27- IFileSystemMigrator fileSystemMigrator ,
28- IScriptLibraryComposer composer
29- )
11+ string script , string [ ] scriptArgs ,
12+ IFileSystem fileSystem , IScriptExecutor scriptExecutor ,
13+ IScriptPackResolver scriptPackResolver ,
14+ ILogProvider logProvider ,
15+ IAssemblyResolver assemblyResolver ,
16+ IFileSystemMigrator fileSystemMigrator ,
17+ IScriptLibraryComposer composer ) :
18+ base ( script , scriptArgs , fileSystem , scriptExecutor , scriptPackResolver , logProvider , assemblyResolver , fileSystemMigrator , composer )
3019 {
31- Guard . AgainstNullArgument ( "fileSystem" , fileSystem ) ;
32- Guard . AgainstNullArgument ( "scriptExecutor" , scriptExecutor ) ;
33- Guard . AgainstNullArgument ( "scriptPackResolver" , scriptPackResolver ) ;
34- Guard . AgainstNullArgument ( "logProvider" , logProvider ) ;
35- Guard . AgainstNullArgument ( "assemblyResolver" , assemblyResolver ) ;
36- Guard . AgainstNullArgument ( "fileSystemMigrator" , fileSystemMigrator ) ;
37- Guard . AgainstNullArgument ( "composer" , composer ) ;
38-
39- _script = script ;
40- ScriptArgs = scriptArgs ;
41- _fileSystem = fileSystem ;
42- _scriptExecutor = scriptExecutor ;
43- _scriptPackResolver = scriptPackResolver ;
44- _logger = logProvider . ForCurrentType ( ) ;
45- _assemblyResolver = assemblyResolver ;
46- _fileSystemMigrator = fileSystemMigrator ;
47- _composer = composer ;
4820 }
4921
50- public string [ ] ScriptArgs { get ; private set ; }
51-
52- public CommandResult Execute ( )
22+ public override CommandResult Execute ( )
5323 {
5424 try
5525 {
@@ -69,6 +39,7 @@ public CommandResult Execute()
6939 // HACK: This is a (dirty) fix for #1086. This might be a temporary solution until some further refactoring can be done.
7040 _scriptExecutor . ScriptEngine . CacheDirectory = Path . Combine ( workingDirectory ?? _fileSystem . CurrentDirectory , _fileSystem . DllCacheFolder ) ;
7141 var scriptResult = _scriptExecutor . Execute ( _script , ScriptArgs ) ;
42+
7243 var commandResult = Inspect ( scriptResult ) ;
7344 _scriptExecutor . Terminate ( ) ;
7445 return commandResult ;
@@ -79,35 +50,5 @@ public CommandResult Execute()
7950 return CommandResult . Error ;
8051 }
8152 }
82-
83- private CommandResult Inspect ( ScriptResult result )
84- {
85- if ( result == null )
86- {
87- return CommandResult . Error ;
88- }
89-
90- if ( result . CompileExceptionInfo != null )
91- {
92- var ex = result . CompileExceptionInfo . SourceException ;
93- _logger . ErrorException ( "Script compilation failed." , ex ) ;
94- return CommandResult . Error ;
95- }
96-
97- if ( result . ExecuteExceptionInfo != null )
98- {
99- var ex = result . ExecuteExceptionInfo . SourceException ;
100- _logger . ErrorException ( "Script execution failed." , ex ) ;
101- return CommandResult . Error ;
102- }
103-
104- if ( ! result . IsCompleteSubmission )
105- {
106- _logger . Error ( "The script is incomplete." ) ;
107- return CommandResult . Error ;
108- }
109-
110- return CommandResult . Success ;
111- }
11253 }
11354}
0 commit comments