From 9113eeebb9c24a69638b3598297c52bad6ca9e03 Mon Sep 17 00:00:00 2001 From: io42630 Date: Wed, 6 Apr 2022 20:07:00 +0200 Subject: [PATCH] _ do not lock ignored files --- src/main/java/com/olexyn/ensync/MainApp.java | 9 +++---- .../ensync/artifacts/SyncDirectory.java | 21 +++------------ .../com/olexyn/ensync/lock/LockKeeper.java | 2 ++ .../com/olexyn/ensync/util/IgnoreUtil.java | 26 +++++++++++++++++++ 4 files changed, 35 insertions(+), 23 deletions(-) create mode 100644 src/main/java/com/olexyn/ensync/util/IgnoreUtil.java diff --git a/src/main/java/com/olexyn/ensync/MainApp.java b/src/main/java/com/olexyn/ensync/MainApp.java index 255c9c8..9e9c212 100644 --- a/src/main/java/com/olexyn/ensync/MainApp.java +++ b/src/main/java/com/olexyn/ensync/MainApp.java @@ -2,21 +2,18 @@ package com.olexyn.ensync; import com.olexyn.ensync.artifacts.DataRoot; import com.olexyn.ensync.artifacts.SyncBundle; - import com.olexyn.ensync.lock.LockUtil; +import com.olexyn.ensync.util.IgnoreUtil; import org.json.JSONException; import org.json.JSONObject; -import java.io.File; import java.nio.file.Path; -import java.util.ArrayList; -import java.util.List; public class MainApp { final public static Flow FLOW = new Flow(); - public static List IGNORE = new ArrayList<>(); + final private static Tools TOOLS = new Tools(); public static void main(String[] args) throws JSONException { @@ -35,7 +32,7 @@ public class MainApp { } var ignorePath = Path.of(System.getProperty("user.dir") + "/src/main/resources/syncignore"); - IGNORE = Tools.fileToLines(LockUtil.lockFile(ignorePath).getFc()); + IgnoreUtil.IGNORE = Tools.fileToLines(LockUtil.lockFile(ignorePath).getFc()); FLOW.start(); } } diff --git a/src/main/java/com/olexyn/ensync/artifacts/SyncDirectory.java b/src/main/java/com/olexyn/ensync/artifacts/SyncDirectory.java index 6ec12ae..5f321f4 100644 --- a/src/main/java/com/olexyn/ensync/artifacts/SyncDirectory.java +++ b/src/main/java/com/olexyn/ensync/artifacts/SyncDirectory.java @@ -1,9 +1,9 @@ package com.olexyn.ensync.artifacts; import com.olexyn.ensync.LogUtil; -import com.olexyn.ensync.MainApp; import com.olexyn.ensync.Tools; import com.olexyn.ensync.lock.LockKeeper; +import com.olexyn.ensync.util.IgnoreUtil; import org.apache.commons.io.FileUtils; import java.io.File; @@ -80,7 +80,7 @@ public class SyncDirectory { RecordFile recordFile = new RecordFile(this, absolutePath); recordFile.setTimeModifiedFromRecord(modTime); - if (noIgnore(recordFile.toPath())) { + if (IgnoreUtil.noIgnore(recordFile.toPath())) { filemap.put(sFilePath, recordFile); } } @@ -163,27 +163,14 @@ public class SyncDirectory { tools.writeStringListToFile(record.getPath().toString(), outputList); } - private boolean noIgnore(Path path) { - for (var line : MainApp.IGNORE) { - line = line - .replace("/", "") - .replace("\\", ""); - var pathX = path.toString() - .replace("/", "") - .replace("\\", ""); - if (pathX.contains(line)) { - return false; - } - } - return true; - } + private Stream getFiles() { try { return Files.walk(directoryPath) .filter(Files::isRegularFile) .map(Path::toFile) - .filter(file -> noIgnore(file.toPath())) + .filter(file -> IgnoreUtil.noIgnore(file.toPath())) .filter(file -> !file.getName().equals(Constants.STATE_FILE_NAME)); } catch (IOException e) { LOGGER.severe("Could walk the file tree : Record will be empty."); diff --git a/src/main/java/com/olexyn/ensync/lock/LockKeeper.java b/src/main/java/com/olexyn/ensync/lock/LockKeeper.java index 129728c..ab2fd93 100644 --- a/src/main/java/com/olexyn/ensync/lock/LockKeeper.java +++ b/src/main/java/com/olexyn/ensync/lock/LockKeeper.java @@ -1,6 +1,7 @@ package com.olexyn.ensync.lock; import com.olexyn.ensync.LogUtil; +import com.olexyn.ensync.util.IgnoreUtil; import java.io.IOException; import java.nio.channels.FileChannel; @@ -25,6 +26,7 @@ public class LockKeeper { try { fcStates = Files.walk(dirPath) .filter(filePath -> filePath.toFile().isFile()) + .filter(IgnoreUtil::noIgnore) .map(filePath -> LockUtil.lockFile(filePath, TRY_COUNT)) .collect(Collectors.toList()); } catch (IOException e) { diff --git a/src/main/java/com/olexyn/ensync/util/IgnoreUtil.java b/src/main/java/com/olexyn/ensync/util/IgnoreUtil.java new file mode 100644 index 0000000..f113937 --- /dev/null +++ b/src/main/java/com/olexyn/ensync/util/IgnoreUtil.java @@ -0,0 +1,26 @@ +package com.olexyn.ensync.util; + +import java.nio.file.Path; +import java.util.ArrayList; +import java.util.List; + +public class IgnoreUtil { + + public static List IGNORE = new ArrayList<>(); + + + public static boolean noIgnore(Path path) { + for (var line : IGNORE) { + line = line + .replace("/", "") + .replace("\\", ""); + var pathX = path.toString() + .replace("/", "") + .replace("\\", ""); + if (pathX.contains(line)) { + return false; + } + } + return true; + } +}