private List<String> excludes = new ArrayList<String>();
- private String baseDir;
+ private String cwd;
+
+ private ResourceLayer lastLayer;
/**
* Entry point for cli main
final List<String> args = cmdLine.getArgList();
logger.trace( "arguments :{}", args );
- int nArgs = args.size();
-
- baseDir = convertPath( "." );
- if ( 1 < nArgs )
- {
- baseDir = convertPath( args.get( 1 ) );
- }
+ cwd = convertPath( "." );
- baseDir = "/home/tysonista/workspace/test11";
- logger.debug( "Base directory :{}", baseDir );
+ logger.debug( "Base directory :{}", cwd );
if (cmdLine.hasOption(OPT_NAME_OUTPUT)) {
- output = FilenameUtil.getRelativePath(baseDir, cmdLine.getOptionValue(OPT_NAME_OUTPUT));
+ //TODO: set relative path.
+ output = FilenameUtil.getRelativePath(cwd, cmdLine.getOptionValue(OPT_NAME_OUTPUT));
}
logger.debug( "Output directory :{}", output );
BuildProcess buildProcess = new BuildProcess();
ResourceLayer startLayer = new ResourceLayer(RESOURCE_LAYER_START, new VirtualFileHandler());
+ this.lastLayer = startLayer;
- Resource[] resources = getResources(cmdLine, baseDir
+ Resource[] resources = getResources(cmdLine
+ , cwd
, startLayer
, null
, excludes.toArray(new String[excludes.size()]));
- generateBuilders(cmdLine, buildProcess, startLayer);
+ generateBuilders(cmdLine, buildProcess, this.lastLayer);
if (buildProcess.getLastBuilder() != null) {
logger.debug("start build process");
buildProcess.build(resources);
public void generateBuilders(CommandLine cmdLine
, BuildProcess buildProcess
, ResourceLayer parentLayer) {
- ResourceLayer lastLayer = parentLayer;
+ lastLayer = parentLayer;
boolean isExcludeUIFW = cmdLine.hasOption(OPT_NAME_EXCLUDE_UI_FRAMEWORK);
if (isExcludeUIFW) {
private void addLastbuilder(BuildProcess buildProcess, ResourceLayer parentLayer) {
// add file output builder
FileHandler fh = new StandardFileHandler();
- fh.setCurrentWorkingDirectory(baseDir);
+ fh.setCurrentWorkingDirectory(cwd);
ResourceLayer toFSLayer = new ResourceLayer(CopyBuilder.RESOURCE_LAYER_NAME
, parentLayer
, fh);
setIncludes(includes);
setExcludes(excludes);
- addResources(baseDir, layer, resources);
+ addResources(FilenameUtil.getRelativePath(this.cwd, this.cwd+File.separator+".")
+ , layer
+ , resources);
if (cmdLine.hasOption(OPT_NAME_REFERENCE_PROJECT)) {
ResourceLayer referenceLayer = new ResourceLayer(HybridAppCLIBuilder.RESOURCE_LAYER_REFERENCE_NAME
String refPath = cmdLine.getOptionValue(OPT_NAME_REFERENCE_PROJECT);
addResources(refPath, referenceLayer, resources);
- layer = referenceLayer;
+ lastLayer = referenceLayer;
}
return resources.toArray(new Resource[resources.size()]);
}
- private void addResources(String baseDir, ResourceLayer layer, List<Resource> resources) throws IOException {
+ /**
+ * Add resource for build
+ * @param relativeSrcDir relative directory including resources.
+ * @param layer {@link ResourceLayer}
+ * @param resources output resources.
+ * @throws IOException
+ */
+ private void addResources(String relativeSrcDir, ResourceLayer layer, List<Resource> resources) throws IOException {
List<File> files = null;
- files = FileUtil.findFiles(new File(baseDir), ".*", true);
+ String absoluteDir = this.cwd+ File.separator + relativeSrcDir;
+ files = FileUtil.findFiles(new File(absoluteDir), ".*", true);
FileHandler fh = layer.getFileHandler();
for (File file : files) {
- String fileRelativePath = FilenameUtil.getRelativePath(baseDir, file.getPath());
+ String fileRelativePath = FilenameUtil.getRelativePath(this.cwd, file.getAbsolutePath());
- if (!FilenameUtil.equals(file.getPath(), baseDir)
- && !filter.accept(baseDir, fileRelativePath)) {
+ if (!FilenameUtil.equals(file.getCanonicalPath(), this.cwd)
+ && !filter.accept(this.cwd, fileRelativePath)) {
logger.debug("Ignore {}", fileRelativePath);
continue;
}