@@ -22,6 +22,7 @@ package
22
22
import com.as3mxml.asconfigc.CompilerOptions ;
23
23
import com.as3mxml.asconfigc.CompilerOptionsParser ;
24
24
import com.as3mxml.asconfigc.ConfigName ;
25
+ import com.as3mxml.asconfigc.HTMLTemplateOptionsParser ;
25
26
import com.as3mxml.asconfigc.JSOutputType ;
26
27
import com.as3mxml.asconfigc.ProjectType ;
27
28
import com.as3mxml.asconfigc.Targets ;
@@ -32,11 +33,11 @@ package
32
33
import com.as3mxml.asconfigc.utils.findApplicationContentOutputPath ;
33
34
import com.as3mxml.asconfigc.utils.findOutputDirectory ;
34
35
import com.as3mxml.asconfigc.utils.findSourcePathAssets ;
36
+ import com.as3mxml.asconfigc.utils.populateHTMLTemplateFile ;
35
37
import com.as3mxml.royale.utils.ApacheFlexJSUtils ;
36
38
import com.as3mxml.royale.utils.ApacheRoyaleUtils ;
37
39
import com.as3mxml.utils.ActionScriptSDKUtils ;
38
40
import com.as3mxml.utils.findJava ;
39
- import com.as3mxml.asconfigc.HTMLTemplateOptionsParser ;
40
41
41
42
/**
42
43
* A command line utility to build a project defined with an asconfig.json
@@ -819,7 +820,71 @@ package
819
820
820
821
private function copyHTMLTemplateDirectory (inputDir :String , outputDir :String ):void
821
822
{
823
+ mkdirp[ "sync" ] (outputDir);
824
+ if (! fs. existsSync(outputDir))
825
+ {
826
+ console. error ("Failed to create output directory for HTML template: " + outputDir);
827
+ process. exit (1 );
828
+ }
829
+ var files: Array = fs. readdirSync(inputDir);
830
+ var fileCount: int = files. length ;
831
+ for (var i: int = 0 ; i < fileCount; i++ )
832
+ {
833
+ var fileName: String = files[ i];
834
+ var inputFilePath: String = path. resolve(inputDir, fileName);
835
+ var outputFilePath: String = path. resolve(outputDir, fileName);
836
+ if (fs. statSync(inputFilePath). isDirectory())
837
+ {
838
+ copyHTMLTemplateDirectory(inputFilePath, outputFilePath);
839
+ continue ;
840
+ }
841
+ var extension : String = path. extname(fileName);
842
+ if (extension )
843
+ {
844
+ var templateExtension: String = ".template" + extension ;
845
+ if (fileName. endsWith(templateExtension))
846
+ {
847
+ var fileNameWithoutExtension: String = fileName. substr (0 , fileName. length - templateExtension. length );
848
+ if (fileNameWithoutExtension === "index" )
849
+ {
850
+ if (this . _mainFile !== null )
851
+ {
852
+ var mainFileName: String = path. basename(this . _mainFile );
853
+ var mainFileExtensionIndex: int = mainFileName. indexOf ("." );
854
+ if (mainFileExtensionIndex !== - 1 )
855
+ {
856
+ fileNameWithoutExtension = mainFileName. substr (0 , mainFileExtensionIndex);
857
+ }
858
+ }
859
+ }
860
+ try
861
+ {
862
+ var content : String = fs. readFileSync(inputFilePath, "utf8" ) as String ;
863
+ }
864
+ catch (error )
865
+ {
866
+ console. error ("Failed to copy file: " + inputFilePath);
867
+ process. exit (1 );
868
+ }
869
+ content = populateHTMLTemplateFile(content , this . _htmlTemplateOptions );
870
+ var outputFileName: String = fileNameWithoutExtension + extension ;
871
+ outputFilePath = path. resolve(outputDir, outputFileName);
872
+ fs. writeFileSync(outputFilePath, content );
873
+ continue ;
874
+ }
875
+ }
876
+ try
877
+ {
878
+ var rawContent: Object = fs. readFileSync(inputFilePath);
879
+ }
880
+ catch (error )
881
+ {
882
+ console. error ("Failed to copy file: " + inputFilePath);
883
+ process. exit (1 );
884
+ }
885
+ fs. writeFileSync(outputFilePath, rawContent);
822
886
887
+ }
823
888
}
824
889
825
890
private function processDescriptor ():void
0 commit comments