_ do not lock ignored files

pull/1/head
io42630 3 years ago
parent 6db86e0f5b
commit 9113eeebb9

@ -2,21 +2,18 @@ package com.olexyn.ensync;
import com.olexyn.ensync.artifacts.DataRoot; import com.olexyn.ensync.artifacts.DataRoot;
import com.olexyn.ensync.artifacts.SyncBundle; import com.olexyn.ensync.artifacts.SyncBundle;
import com.olexyn.ensync.lock.LockUtil; import com.olexyn.ensync.lock.LockUtil;
import com.olexyn.ensync.util.IgnoreUtil;
import org.json.JSONException; import org.json.JSONException;
import org.json.JSONObject; import org.json.JSONObject;
import java.io.File;
import java.nio.file.Path; import java.nio.file.Path;
import java.util.ArrayList;
import java.util.List;
public class MainApp { public class MainApp {
final public static Flow FLOW = new Flow(); final public static Flow FLOW = new Flow();
public static List<String> IGNORE = new ArrayList<>();
final private static Tools TOOLS = new Tools(); final private static Tools TOOLS = new Tools();
public static void main(String[] args) throws JSONException { 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"); 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(); FLOW.start();
} }
} }

@ -1,9 +1,9 @@
package com.olexyn.ensync.artifacts; package com.olexyn.ensync.artifacts;
import com.olexyn.ensync.LogUtil; import com.olexyn.ensync.LogUtil;
import com.olexyn.ensync.MainApp;
import com.olexyn.ensync.Tools; import com.olexyn.ensync.Tools;
import com.olexyn.ensync.lock.LockKeeper; import com.olexyn.ensync.lock.LockKeeper;
import com.olexyn.ensync.util.IgnoreUtil;
import org.apache.commons.io.FileUtils; import org.apache.commons.io.FileUtils;
import java.io.File; import java.io.File;
@ -80,7 +80,7 @@ public class SyncDirectory {
RecordFile recordFile = new RecordFile(this, absolutePath); RecordFile recordFile = new RecordFile(this, absolutePath);
recordFile.setTimeModifiedFromRecord(modTime); recordFile.setTimeModifiedFromRecord(modTime);
if (noIgnore(recordFile.toPath())) { if (IgnoreUtil.noIgnore(recordFile.toPath())) {
filemap.put(sFilePath, recordFile); filemap.put(sFilePath, recordFile);
} }
} }
@ -163,27 +163,14 @@ public class SyncDirectory {
tools.writeStringListToFile(record.getPath().toString(), outputList); 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<File> getFiles() { private Stream<File> getFiles() {
try { try {
return Files.walk(directoryPath) return Files.walk(directoryPath)
.filter(Files::isRegularFile) .filter(Files::isRegularFile)
.map(Path::toFile) .map(Path::toFile)
.filter(file -> noIgnore(file.toPath())) .filter(file -> IgnoreUtil.noIgnore(file.toPath()))
.filter(file -> !file.getName().equals(Constants.STATE_FILE_NAME)); .filter(file -> !file.getName().equals(Constants.STATE_FILE_NAME));
} catch (IOException e) { } catch (IOException e) {
LOGGER.severe("Could walk the file tree : Record will be empty."); LOGGER.severe("Could walk the file tree : Record will be empty.");

@ -1,6 +1,7 @@
package com.olexyn.ensync.lock; package com.olexyn.ensync.lock;
import com.olexyn.ensync.LogUtil; import com.olexyn.ensync.LogUtil;
import com.olexyn.ensync.util.IgnoreUtil;
import java.io.IOException; import java.io.IOException;
import java.nio.channels.FileChannel; import java.nio.channels.FileChannel;
@ -25,6 +26,7 @@ public class LockKeeper {
try { try {
fcStates = Files.walk(dirPath) fcStates = Files.walk(dirPath)
.filter(filePath -> filePath.toFile().isFile()) .filter(filePath -> filePath.toFile().isFile())
.filter(IgnoreUtil::noIgnore)
.map(filePath -> LockUtil.lockFile(filePath, TRY_COUNT)) .map(filePath -> LockUtil.lockFile(filePath, TRY_COUNT))
.collect(Collectors.toList()); .collect(Collectors.toList());
} catch (IOException e) { } catch (IOException e) {

@ -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<String> 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;
}
}
Loading…
Cancel
Save