Skip to content

Commit 118344c

Browse files
author
gast1
committed
Add support for creating project based on a template with sub folders
Before this change a template for a project could not contain subfolders. Subfolders are only copied (no processing) This change also added support for processing sketch.cpp files
1 parent 6252349 commit 118344c

File tree

1 file changed

+15
-5
lines changed

1 file changed

+15
-5
lines changed

io.sloeber.core/src/io/sloeber/core/api/CodeDescription.java

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,11 @@ public enum CodeTypes {
4646
}
4747

4848
static private final String DEFAULT_SKETCH_BASE = "sketch"; //$NON-NLS-1$
49-
public static final String DEFAULT_SKETCH_INO = DEFAULT_SKETCH_BASE + ".ino"; //$NON-NLS-1$
50-
public static final String DEFAULT_SKETCH_CPP = DEFAULT_SKETCH_BASE + ".cpp"; //$NON-NLS-1$
51-
public static final String DEFAULT_SKETCH_H = DEFAULT_SKETCH_BASE + ".h"; //$NON-NLS-1$
49+
public static final String INO= "ino"; //$NON-NLS-1$
50+
public static final String CPP= "cpp"; //$NON-NLS-1$
51+
public static final String DEFAULT_SKETCH_INO = DEFAULT_SKETCH_BASE + DOT+INO;
52+
public static final String DEFAULT_SKETCH_CPP = DEFAULT_SKETCH_BASE + DOT+CPP;
53+
public static final String DEFAULT_SKETCH_H = DEFAULT_SKETCH_BASE + DOT+'h';
5254
//
5355
// template Sketch information
5456

@@ -303,7 +305,7 @@ public boolean createFiles(IContainer scrContainer, IProgressMonitor monitor) {
303305
URL inoFileURL = FileLocator.find(bundle, templatePath.append(DEFAULT_SKETCH_INO), null);
304306
URL inoResolvedFileURL = FileLocator.toFileURL(inoFileURL);
305307
String inoFileLoc= new Path(inoResolvedFileURL.toURI().getPath()).toOSString();
306-
Helpers.addFileToProject(scrContainer.getFile(IPath.fromOSString( project.getName() + ".ino")),
308+
Helpers.addFileToProject(scrContainer.getFile(IPath.fromOSString( project.getName() + DOT+INO)),
307309
Stream.openContentStream(inoFileLoc, true, replacers),
308310
monitor, false);
309311
break;
@@ -332,9 +334,17 @@ public boolean createFiles(IContainer scrContainer, IProgressMonitor monitor) {
332334
for (String file : files) {
333335
if (!(file.equals(".") || file.equals(".."))) {
334336
File sourceFile = folderName.append(file).toFile();
337+
if(sourceFile.isDirectory()) {
338+
//create the folder and copy all sub files/folders recursively
339+
FileUtils.copyDirectory(sourceFile, scrContainer.getLocation().append(file).toFile());
340+
continue;
341+
}
335342
String renamedFile = file;
336343
if (DEFAULT_SKETCH_INO.equalsIgnoreCase(file)) {
337-
renamedFile = project.getName() + ".ino";
344+
renamedFile = project.getName() +DOT+INO;
345+
}
346+
if (DEFAULT_SKETCH_CPP.equalsIgnoreCase(file)) {
347+
renamedFile = project.getName() +DOT+CPP;
338348
}
339349
try (InputStream theFileStream = Stream.openContentStream(sourceFile.toString(), true,
340350
replacers);) {

0 commit comments

Comments
 (0)