borgbutler-core/src/main/java/de/micromata/borgbutler/BorgCommands.java
@@ -22,10 +22,7 @@ import java.io.IOException; import java.io.OutputStream; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Scanner; import java.util.*; public class BorgCommands { private static Logger log = LoggerFactory.getLogger(BorgCommands.class); @@ -148,6 +145,7 @@ content.add(item); } } Collections.sort(content); // Sort by path. return content; } borgbutler-core/src/main/java/de/micromata/borgbutler/data/FileSystemFilter.java
@@ -7,16 +7,35 @@ public class FileSystemFilter { @Getter @Setter private String searchString; @Getter @Setter private int maxResultSize; private String[] searchKeyWords; public boolean matches(BorgFilesystemItem item) { if (searchString == null || searchString.length() == 0) { if (searchKeyWords == null) { return true; } return StringUtils.containsIgnoreCase(item.getPath(), searchString); for (String searchKeyWord : searchKeyWords) { if (!StringUtils.containsIgnoreCase(item.getPath(), searchKeyWord)) return false; } return true; } /** * * @param searchString The search string. If this string contains several key words separated by white chars, * all key words must be found. * @return this for chaining. */ public FileSystemFilter setSearchString(String searchString) { this.searchString = searchString; searchKeyWords = StringUtils.split(searchString); if (searchKeyWords != null && searchKeyWords.length == 0) { searchKeyWords = null; } return this; } } borgbutler-core/src/main/java/de/micromata/borgbutler/json/borg/BorgFilesystemItem.java
@@ -2,10 +2,11 @@ import lombok.Getter; import lombok.Setter; import org.apache.commons.lang3.StringUtils; import java.io.Serializable; public class BorgFilesystemItem implements Serializable { public class BorgFilesystemItem implements Serializable, Comparable<BorgFilesystemItem> { private static final long serialVersionUID = -5545350851640655468L; /** * d (directory), - (file) @@ -40,4 +41,9 @@ private String mtime; @Getter private long size; @Override public int compareTo(BorgFilesystemItem o) { return StringUtils.compare(this.path, o.path); } }