diff --git a/app/src/cc/arduino/packages/Uploader.java b/app/src/cc/arduino/packages/Uploader.java index 81e5cc234..e81ba39c4 100644 --- a/app/src/cc/arduino/packages/Uploader.java +++ b/app/src/cc/arduino/packages/Uploader.java @@ -31,6 +31,7 @@ import processing.app.Preferences; import processing.app.debug.MessageConsumer; import processing.app.debug.MessageSiphon; import processing.app.debug.RunnerException; +import processing.app.helpers.StringUtils; import java.io.File; import java.util.Arrays; @@ -60,15 +61,6 @@ public abstract class Uploader implements MessageConsumer { "avrdude: error: buffered memory access not supported."); } - private static boolean stringContainsOneOf(String input, List listOfStrings) { - for (String string : listOfStrings) { - if (input.contains(string)) { - return true; - } - } - return false; - } - private String error; protected boolean verbose; protected boolean notFoundError; @@ -126,7 +118,7 @@ public abstract class Uploader implements MessageConsumer { public void message(String s) { // selectively suppress a bunch of avrdude output for AVR109/Caterina that should already be quelled but isn't - if (!verbose && stringContainsOneOf(s, STRINGS_TO_SUPPRESS)) { + if (!verbose && StringUtils.stringContainsOneOf(s, STRINGS_TO_SUPPRESS)) { s = ""; } @@ -145,7 +137,7 @@ public abstract class Uploader implements MessageConsumer { error = _("Device is not responding, check the right serial port is selected or RESET the board right before exporting"); return; } - if (stringContainsOneOf(s, AVRDUDE_PROBLEMS)) { + if (StringUtils.stringContainsOneOf(s, AVRDUDE_PROBLEMS)) { error = _("Problem uploading to board. See http://www.arduino.cc/en/Guide/Troubleshooting#upload for suggestions."); return; } diff --git a/app/src/cc/arduino/packages/uploaders/SSHUploader.java b/app/src/cc/arduino/packages/uploaders/SSHUploader.java index 457b55b3a..cb8aef6e7 100644 --- a/app/src/cc/arduino/packages/uploaders/SSHUploader.java +++ b/app/src/cc/arduino/packages/uploaders/SSHUploader.java @@ -13,15 +13,20 @@ import processing.app.Preferences; import processing.app.debug.RunnerException; import processing.app.debug.TargetPlatform; import processing.app.helpers.PreferencesMap; +import processing.app.helpers.StringUtils; import java.io.File; import java.io.IOException; +import java.util.Arrays; +import java.util.List; import java.util.regex.Matcher; import static processing.app.I18n._; public class SSHUploader extends Uploader { + private static final List FILES_NOT_TO_COPY = Arrays.asList(".DS_Store", ".Trash", "Thumbs.db", "__MACOSX"); + private final String ipAddress; public SSHUploader(String port) { @@ -142,12 +147,14 @@ public class SSHUploader extends Uploader { } for (File file : files) { - if (file.isDirectory() && file.canExecute()) { - scp.startFolder(file.getName()); - recursiveSCP(file, scp); - scp.endFolder(); - } else if (file.isFile() && file.canRead()) { - scp.sendFile(file); + if (!StringUtils.stringContainsOneOf(file.getName(), FILES_NOT_TO_COPY)) { + if (file.isDirectory() && file.canExecute()) { + scp.startFolder(file.getName()); + recursiveSCP(file, scp); + scp.endFolder(); + } else if (file.isFile() && file.canRead()) { + scp.sendFile(file); + } } } } diff --git a/app/src/processing/app/helpers/StringMatchers.java b/app/src/processing/app/helpers/StringUtils.java similarity index 57% rename from app/src/processing/app/helpers/StringMatchers.java rename to app/src/processing/app/helpers/StringUtils.java index 686d9b2ab..ea623d901 100644 --- a/app/src/processing/app/helpers/StringMatchers.java +++ b/app/src/processing/app/helpers/StringUtils.java @@ -1,15 +1,24 @@ package processing.app.helpers; -public class StringMatchers { +import java.util.List; + +public class StringUtils { + + public static boolean stringContainsOneOf(String input, List listOfStrings) { + for (String string : listOfStrings) { + if (input.contains(string)) { + return true; + } + } + return false; + } /** * Tries to match input with pattern. The pattern can use the * "*" and "?" globs to match any-char-sequence and any-char respectively. - * - * @param input - * The string to be checked - * @param pattern - * The pattern to match + * + * @param input The string to be checked + * @param pattern The pattern to match * @return true if the input matches the pattern, * false otherwise. */ @@ -17,5 +26,4 @@ public class StringMatchers { String regex = pattern.replace("?", ".?").replace("*", ".*?"); return input.matches(regex); } - } diff --git a/app/src/processing/app/packages/Library.java b/app/src/processing/app/packages/Library.java index 6779c88e8..579f58550 100644 --- a/app/src/processing/app/packages/Library.java +++ b/app/src/processing/app/packages/Library.java @@ -9,7 +9,7 @@ import java.util.Arrays; import java.util.Comparator; import java.util.List; -import static processing.app.helpers.StringMatchers.wildcardMatch; +import static processing.app.helpers.StringUtils.wildcardMatch; public class Library {