Thanks to visit codestin.com
Credit goes to GitHub.com

Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@

CP=.
CP=.:jline-3.10.0.jar
CLASSES=Filelist.class Rulelist.class \
Filepart.class FilepartCanonical.class FilepartName.class FilepartParent.class \
Rule.class RuleAll.class RuleAny.class RuleOne.class \
Expand Down
87 changes: 81 additions & 6 deletions dupefind.java
Original file line number Diff line number Diff line change
@@ -1,8 +1,11 @@
import java.util.ArrayList;

import java.util.*;
import java.text.SimpleDateFormat;
import javax.lang.model.util.ElementScanner6;

import java.io.*;
import org.jline.terminal.TerminalBuilder;
import org.jline.terminal.Terminal;
import org.jline.reader.*;

public class dupefind {

Expand All @@ -16,6 +19,7 @@ private static boolean findFile (ArrayList<File> sl, ArrayList<File> al)
return false;
}


private static ArrayList<File> findEntry(ArrayList<File> al, ArrayList<ArrayList<File>> aaf)
{
int count = 0;
Expand Down Expand Up @@ -50,9 +54,62 @@ private static String readln() {
return ln;
}

private static void list(ArrayList<ArrayList<File>> duplicatelist)
{
for (ArrayList<File> al : duplicatelist)
{
listLine(al);
System.out.println("--");
}
}
private static void listLine(ArrayList<File> al)
{
for (File f: al)
printFile(f);
}
private static void printFile(File f)
{
// make an ls -l type display
StringBuilder dirent = new StringBuilder();

if (f.isDirectory())
dirent.append("d");
else
dirent.append("-");

if (f.canRead())
dirent.append("r");
else
dirent.append("-");

if (f.canWrite())
dirent.append("w");
else
dirent.append("-");

if (f.canExecute())
dirent.append("x");
else
dirent.append("-");

dirent.append(" ");

dirent.append(f.length());

dirent.append(" ");

Calendar c = Calendar.getInstance();
c.setTimeInMillis(f.lastModified());
Date d = (Date) c.getTime();
SimpleDateFormat format = new SimpleDateFormat("MMM dd HH:mm");

dirent.append(format.format(d));

dirent.append(" ");

dirent.append(f.getPath());

System.out.println(dirent);
}

private static void printParentLine (ArrayList<File> al)
Expand Down Expand Up @@ -166,10 +223,26 @@ public void run() {

ArrayList<ArrayList<File>> currentList = allList;

while (true) {

System.out.print("" + currentList.size() + "> ");
String argument = readln();
TerminalBuilder builder = TerminalBuilder.builder();
LineReader reader = LineReaderBuilder.builder().build();



while (true) {

System.out.print("" + currentList.size() + "> ");
String argument = null;
try {
argument = reader.readLine(""+currentList.size() + "> ",null,(MaskingCallback) null,null);
} catch (UserInterruptException e) {
// Ignore
} catch (EndOfFileException e) {
return;
}
if (argument == null) {
continue;
}
argument = argument.trim();

// going to need a command parser class...
String[] arguments = argument.split(":");
Expand Down Expand Up @@ -244,6 +317,8 @@ public void run() {
printParent(currentList);
} else if ("print".equals(arguments[0])) {
print(currentList);
} else if ("list".equals(arguments[0])) {
list(currentList);
} else if ("quit".equals(arguments[0])) {
System.exit(0);
}
Expand Down