33using System . Linq ;
44using System . Text ;
55using System . Threading . Tasks ;
6+ using Common . Logging ;
67using ScriptCs . Contracts ;
78using System . IO ;
89
@@ -14,26 +15,34 @@ public class ScriptLibraryComposer : IScriptLibraryComposer
1415 private readonly IFilePreProcessor _preProcessor ;
1516 private readonly IPackageContainer _packageContainer ;
1617 private readonly IPackageAssemblyResolver _packageAssemblyResolver ;
18+ private readonly ILog _logger ;
1719
18- public ScriptLibraryComposer ( IFileSystem fileSystem , IFilePreProcessor preProcessor , IPackageContainer packageContainer , IPackageAssemblyResolver packageAssemblyResolver )
20+ public ScriptLibraryComposer ( IFileSystem fileSystem , IFilePreProcessor preProcessor , IPackageContainer packageContainer , IPackageAssemblyResolver packageAssemblyResolver , ILog logger )
1921 {
2022 Guard . AgainstNullArgument ( "fileSystem" , fileSystem ) ;
2123 Guard . AgainstNullArgument ( "preProcessor" , preProcessor ) ;
2224 Guard . AgainstNullArgument ( "packageContainer" , packageContainer ) ;
2325 Guard . AgainstNullArgument ( "packageAssemblyResolver" , packageAssemblyResolver ) ;
26+ Guard . AgainstNullArgument ( "logger" , logger ) ;
2427
2528 _fileSystem = fileSystem ;
2629 _preProcessor = preProcessor ;
2730 _packageContainer = packageContainer ;
2831 _packageAssemblyResolver = packageAssemblyResolver ;
32+ _logger = logger ;
2933 }
3034
31- internal static string GetMainScript ( IPackageObject package )
35+ internal string GetMainScript ( IPackageObject package )
3236 {
3337 var script =
3438 package . GetContentFiles ( )
3539 . SingleOrDefault ( f => f . EndsWith ( "main.csx" , StringComparison . InvariantCultureIgnoreCase ) ) ;
36-
40+
41+ if ( script != null )
42+ {
43+ _logger . DebugFormat ( "Found main script: {0}" , script ) ;
44+ }
45+
3746 return script ;
3847 }
3948
@@ -81,17 +90,25 @@ public void Compose(StringBuilder builder = null)
8190 protected internal virtual void ProcessPackage ( string packagesPath , IPackageReference reference , StringBuilder builder , List < string > references ,
8291 List < string > namespaces )
8392 {
93+ _logger . DebugFormat ( "Finding package:{0}" , reference . PackageId ) ;
8494 var package = _packageContainer . FindPackage ( packagesPath , reference ) ;
95+ _logger . Debug ( "Package found" ) ;
8596 var script = GetMainScript ( package ) ;
8697 if ( script != null )
8798 {
8899 script = Path . Combine ( packagesPath , string . Format ( "{0}.{1}" , package . Id , package . TextVersion ) , script ) ;
100+ _logger . Debug ( "Pre-processing script" ) ;
89101 var result = _preProcessor . ProcessFile ( script ) ;
90102 var fileWithoutExtension = Path . GetFileNameWithoutExtension ( script ) ;
91103 var classname = fileWithoutExtension . Substring ( 0 , fileWithoutExtension . Length - 4 ) ;
92- builder . AppendFormat ( "public class {0} : ScriptCs.ScriptLibraryWrapper {{{1}" , classname , Environment . NewLine ) ;
93- builder . AppendLine ( result . Code ) ;
94- builder . Append ( "}" ) ;
104+ _logger . DebugFormat ( "Created Script Libary class: {0}" , classname ) ;
105+ var classBuilder = new StringBuilder ( ) ;
106+ classBuilder . AppendFormat ( "public class {0} : ScriptCs.ScriptLibraryWrapper {{{1}" , classname , Environment . NewLine ) ;
107+ classBuilder . AppendLine ( result . Code ) ;
108+ classBuilder . AppendLine ( "}" ) ;
109+ var classDefinition = classBuilder . ToString ( ) ;
110+ _logger . TraceFormat ( "Class definition:{0}{0}{1}" , Environment . NewLine , classDefinition ) ;
111+ builder . Append ( classDefinition ) ;
95112 references . AddRange ( result . References ) ;
96113 namespaces . AddRange ( result . Namespaces ) ;
97114 }
0 commit comments