String appName = parsedArgs.getString("app-name");
String banner = parsedArgs.getString("banner");
String[] bannerExtensions = parsedArgs.getString("bannerExtensions").split(",");
String targetPath = parsedArgs.getString("target");
App app = brjs.app(appName);
if(!app.dirExists()) throw new CommandArgumentsException("Could not find application '" + appName + "'", this);
File targetDir;
if (targetPath.equals("")) {
targetDir = brjs.storageDir("exported-apps");
} else {
targetDir = new File(targetPath);
if (!targetDir.isDirectory())
{
targetDir = brjs.file("sdk/" + targetPath);
}
}
File destinationZipLocation = new File(targetDir, appName + ".zip");
try
{
File temporaryExportDir = FileUtility.createTemporaryDirectory( this.getClass(), appName );
IOFileFilter excludeUserLibraryTestsFilter = createExcludeUserLibsTestsFilter(appName);
NotFileFilter brjsJarFilter = new NotFileFilter(new AndFileFilter(new PrefixFileFilter("brjs-"), new SuffixFileFilter(".jar")));
IOFileFilter combinedFilter = new AndFileFilter(new ExcludeDirFileFilter("bundles"), brjsJarFilter);
combinedFilter = new AndFileFilter(combinedFilter, excludeUserLibraryTestsFilter);
createResourcesFromSdkTemplate(app.dir(), temporaryExportDir, combinedFilter);
if (banner != null) {
String jsBanner = "/*\n" + banner + "\n*/\n\n";
includeBannerInDirectoryClasses(new File(temporaryExportDir, "libs"), jsBanner, bannerExtensions);
}
FileUtility.zipFolder(temporaryExportDir, destinationZipLocation, false);