mirror of https://github.com/micromata/borgbackup-butler.git

Kai Reinhard
16.53.2018 d70dc529484a3d8e13ca41d7052b27df75c0e91d
Sorting of files added and multiple key words supported in search.
3 files modified
39 ■■■■ changed files
borgbutler-core/src/main/java/de/micromata/borgbutler/BorgCommands.java 6 ●●●●● patch | view | raw | blame | history
borgbutler-core/src/main/java/de/micromata/borgbutler/data/FileSystemFilter.java 25 ●●●● patch | view | raw | blame | history
borgbutler-core/src/main/java/de/micromata/borgbutler/json/borg/BorgFilesystemItem.java 8 ●●●● patch | view | raw | blame | history
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);
    }
}