Skip to content

Commit 682a5ec

Browse files
author
Federico Fissore
committed
Faster recompilation of unsaved sketches
1 parent f906d45 commit 682a5ec

File tree

3 files changed

+24
-9
lines changed

3 files changed

+24
-9
lines changed

app/src/processing/app/Sketch.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import cc.arduino.UploaderUtils;
2929
import cc.arduino.files.DeleteFilesOnShutdown;
3030
import cc.arduino.packages.Uploader;
31+
import org.apache.commons.codec.digest.DigestUtils;
3132
import processing.app.debug.RunnerException;
3233
import processing.app.forms.PasswordAuthorizationDialog;
3334
import processing.app.helpers.FileUtils;
@@ -1130,7 +1131,7 @@ private String build(String buildPath, boolean verbose, boolean save) throws Run
11301131
}
11311132

11321133
private String saveSketchInTempFolder() throws IOException {
1133-
File tempFolder = FileUtils.createTempFolder();
1134+
File tempFolder = FileUtils.createTempFolder("arduino_", DigestUtils.md5Hex(data.getMainFilePath()));
11341135
DeleteFilesOnShutdown.add(tempFolder);
11351136
FileUtils.copy(getFolder(), tempFolder);
11361137

arduino-core/src/cc/arduino/contributions/libraries/LibraryInstaller.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ public synchronized void install(ContributedLibrary lib, ContributedLibrary repl
109109
progress.setStatus(I18n.format(tr("Installing library: {0}"), lib.getName()));
110110
progressListener.onProgress(progress);
111111
File libsFolder = indexer.getSketchbookLibrariesFolder();
112-
File tmpFolder = FileUtils.createTempFolderIn(libsFolder);
112+
File tmpFolder = FileUtils.createTempFolder(libsFolder);
113113
try {
114114
new ArchiveExtractor(platform).extract(lib.getDownloadedFile(), tmpFolder, 1);
115115
} catch (Exception e) {

arduino-core/src/processing/app/helpers/FileUtils.java

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
import org.apache.commons.compress.utils.IOUtils;
44

55
import java.io.*;
6+
import java.nio.file.Files;
7+
import java.nio.file.Paths;
68
import java.util.*;
79
import java.util.regex.Pattern;
810

@@ -84,15 +86,27 @@ public static void recursiveDelete(File file) {
8486
}
8587

8688
public static File createTempFolder() throws IOException {
87-
return createTempFolderIn(new File(System.getProperty("java.io.tmpdir")));
89+
return createTempFolder(new File(System.getProperty("java.io.tmpdir")));
8890
}
8991

90-
public static File createTempFolderIn(File parent) throws IOException {
91-
File tmpFolder = new File(parent, "arduino_" + new Random().nextInt(1000000));
92-
if (!tmpFolder.mkdir()) {
93-
throw new IOException("Unable to create temp folder " + tmpFolder);
94-
}
95-
return tmpFolder;
92+
public static File createTempFolder(File parent) throws IOException {
93+
return createTempFolder(parent, "arduino_");
94+
}
95+
96+
public static File createTempFolder(File parent, String prefix) throws IOException {
97+
return createTempFolder(parent, prefix, Integer.toString(new Random().nextInt(1000000)));
98+
}
99+
100+
public static File createTempFolder(String prefix) throws IOException {
101+
return createTempFolder(new File(System.getProperty("java.io.tmpdir")), prefix);
102+
}
103+
104+
public static File createTempFolder(String prefix, String suffix) throws IOException {
105+
return createTempFolder(new File(System.getProperty("java.io.tmpdir")), prefix, suffix);
106+
}
107+
108+
public static File createTempFolder(File parent, String prefix, String suffix) throws IOException {
109+
return Files.createDirectories(Paths.get(parent.getAbsolutePath(), prefix + suffix)).toFile();
96110
}
97111

98112
//

0 commit comments

Comments
 (0)