From 633074402f8e4adedc75f24ca038097efe0c1008 Mon Sep 17 00:00:00 2001 From: PEDRO LUCAS Date: Fri, 17 Oct 2025 20:19:30 -0300 Subject: [PATCH 1/3] chore: Stop tracking .idea IDE configuration files --- src/main/java/com/mycmd/Command.java | 4 +++ src/main/java/com/mycmd/ShellContext.java | 11 ++++++ .../java/com/mycmd/commands/CdCommand.java | 9 +++++ .../java/com/mycmd/commands/ClsCommand.java | 9 +++++ .../java/com/mycmd/commands/ColorCommand.java | 9 +++++ .../java/com/mycmd/commands/CopyCommand.java | 9 +++++ .../java/com/mycmd/commands/DateCommand.java | 9 +++++ .../java/com/mycmd/commands/DelCommand.java | 9 +++++ .../java/com/mycmd/commands/DirCommand.java | 9 +++++ .../java/com/mycmd/commands/EchoCommand.java | 9 +++++ .../java/com/mycmd/commands/ExitCommand.java | 9 +++++ .../com/mycmd/commands/HistoryCommand.java | 9 +++++ .../com/mycmd/commands/HostnameCommand.java | 9 +++++ .../java/com/mycmd/commands/LsCommand.java | 9 +++-- .../java/com/mycmd/commands/MkdirCommand.java | 9 +++++ .../java/com/mycmd/commands/MoveCommand.java | 23 ++++++++++--- .../java/com/mycmd/commands/RmdirCommand.java | 9 +++++ .../java/com/mycmd/commands/TimeCommand.java | 9 +++++ .../java/com/mycmd/commands/TitleCommand.java | 10 ++++++ .../java/com/mycmd/commands/TouchCommand.java | 32 +++++++++++++----- .../java/com/mycmd/commands/TreeCommand.java | 9 +++++ .../java/com/mycmd/commands/TypeCommand.java | 9 +++++ .../com/mycmd/commands/VersionCommand.java | 11 ++++++ .../com/mycmd/commands/WhoamiCommand.java | 9 +++++ target/classes/PingCommand.class | Bin 0 -> 2045 bytes target/classes/com/mycmd/App.class | Bin 0 -> 5155 bytes target/classes/com/mycmd/Command.class | Bin 0 -> 233 bytes target/classes/com/mycmd/ShellContext.class | Bin 0 -> 2000 bytes target/classes/com/mycmd/StringUtils.class | Bin 0 -> 1647 bytes .../com/mycmd/commands/CdCommand.class | Bin 0 -> 1703 bytes .../com/mycmd/commands/ClsCommand.class | Bin 0 -> 920 bytes .../com/mycmd/commands/ColorCommand.class | Bin 0 -> 2971 bytes .../com/mycmd/commands/CopyCommand.class | Bin 0 -> 2665 bytes .../com/mycmd/commands/DateCommand.class | Bin 0 -> 1512 bytes .../com/mycmd/commands/DelCommand.class | Bin 0 -> 1946 bytes .../com/mycmd/commands/DirCommand.class | Bin 0 -> 1925 bytes .../com/mycmd/commands/EchoCommand.class | Bin 0 -> 1075 bytes .../com/mycmd/commands/ExitCommand.class | Bin 0 -> 928 bytes .../com/mycmd/commands/HelpCommand.class | Bin 0 -> 3127 bytes .../com/mycmd/commands/HistoryCommand.class | Bin 0 -> 1854 bytes .../com/mycmd/commands/HostnameCommand.class | Bin 0 -> 1366 bytes .../com/mycmd/commands/ListFilesNIO.class | Bin 0 -> 2334 bytes .../com/mycmd/commands/MkdirCommand.class | Bin 0 -> 1343 bytes .../com/mycmd/commands/MoveCommand.class | Bin 0 -> 2495 bytes .../com/mycmd/commands/RmdirCommand.class | Bin 0 -> 1469 bytes .../com/mycmd/commands/TimeCommand.class | Bin 0 -> 1813 bytes .../com/mycmd/commands/TitleCommand.class | Bin 0 -> 1608 bytes .../com/mycmd/commands/TouchCommand.class | Bin 0 -> 1996 bytes .../com/mycmd/commands/TreeCommand.class | Bin 0 -> 2546 bytes .../com/mycmd/commands/TypeCommand.class | Bin 0 -> 2328 bytes .../com/mycmd/commands/VersionCommand.class | Bin 0 -> 923 bytes .../com/mycmd/commands/WhoamiCommand.class | Bin 0 -> 981 bytes 52 files changed, 237 insertions(+), 16 deletions(-) create mode 100644 target/classes/PingCommand.class create mode 100644 target/classes/com/mycmd/App.class create mode 100644 target/classes/com/mycmd/Command.class create mode 100644 target/classes/com/mycmd/ShellContext.class create mode 100644 target/classes/com/mycmd/StringUtils.class create mode 100644 target/classes/com/mycmd/commands/CdCommand.class create mode 100644 target/classes/com/mycmd/commands/ClsCommand.class create mode 100644 target/classes/com/mycmd/commands/ColorCommand.class create mode 100644 target/classes/com/mycmd/commands/CopyCommand.class create mode 100644 target/classes/com/mycmd/commands/DateCommand.class create mode 100644 target/classes/com/mycmd/commands/DelCommand.class create mode 100644 target/classes/com/mycmd/commands/DirCommand.class create mode 100644 target/classes/com/mycmd/commands/EchoCommand.class create mode 100644 target/classes/com/mycmd/commands/ExitCommand.class create mode 100644 target/classes/com/mycmd/commands/HelpCommand.class create mode 100644 target/classes/com/mycmd/commands/HistoryCommand.class create mode 100644 target/classes/com/mycmd/commands/HostnameCommand.class create mode 100644 target/classes/com/mycmd/commands/ListFilesNIO.class create mode 100644 target/classes/com/mycmd/commands/MkdirCommand.class create mode 100644 target/classes/com/mycmd/commands/MoveCommand.class create mode 100644 target/classes/com/mycmd/commands/RmdirCommand.class create mode 100644 target/classes/com/mycmd/commands/TimeCommand.class create mode 100644 target/classes/com/mycmd/commands/TitleCommand.class create mode 100644 target/classes/com/mycmd/commands/TouchCommand.class create mode 100644 target/classes/com/mycmd/commands/TreeCommand.class create mode 100644 target/classes/com/mycmd/commands/TypeCommand.class create mode 100644 target/classes/com/mycmd/commands/VersionCommand.class create mode 100644 target/classes/com/mycmd/commands/WhoamiCommand.class diff --git a/src/main/java/com/mycmd/Command.java b/src/main/java/com/mycmd/Command.java index 7bbc6cf..9cd8a42 100644 --- a/src/main/java/com/mycmd/Command.java +++ b/src/main/java/com/mycmd/Command.java @@ -23,4 +23,8 @@ public interface Command { * current date/time to standard output. See their implementations for formatting details. */ void execute(String[] args, ShellContext context); + + String description(); + + String usage(); } diff --git a/src/main/java/com/mycmd/ShellContext.java b/src/main/java/com/mycmd/ShellContext.java index ada37ee..f16ccbd 100644 --- a/src/main/java/com/mycmd/ShellContext.java +++ b/src/main/java/com/mycmd/ShellContext.java @@ -3,6 +3,8 @@ import java.io.File; import java.util.ArrayList; import java.util.List; +import java.nio.file.Path; +import java.nio.file.Paths; public class ShellContext { private File currentDir; @@ -34,4 +36,13 @@ public void addToHistory(String command) { } } } + public Path resolvePath(String path) { + Path inputPath = Paths.get(path); + + if (inputPath.isAbsolute()) { + return inputPath; + } + + return Paths.get(this.getCurrentDir().getAbsolutePath()).resolve(inputPath); + } } diff --git a/src/main/java/com/mycmd/commands/CdCommand.java b/src/main/java/com/mycmd/commands/CdCommand.java index 428e6a8..7db2772 100644 --- a/src/main/java/com/mycmd/commands/CdCommand.java +++ b/src/main/java/com/mycmd/commands/CdCommand.java @@ -53,4 +53,13 @@ public void execute(String[] args, ShellContext context) { System.out.println("The system cannot find the path specified."); } } + @Override + public String description() { + return "Changes the current working directory."; + } + + @Override + public String usage() { + return "Usage: cd "; + } } diff --git a/src/main/java/com/mycmd/commands/ClsCommand.java b/src/main/java/com/mycmd/commands/ClsCommand.java index 360cffc..3b6e39a 100644 --- a/src/main/java/com/mycmd/commands/ClsCommand.java +++ b/src/main/java/com/mycmd/commands/ClsCommand.java @@ -21,4 +21,13 @@ public void execute(String[] args, ShellContext context) { System.out.println(); } } + @Override + public String description() { + return "Clears the terminal screen."; + } + + @Override + public String usage() { + return "Usage: cls"; + } } diff --git a/src/main/java/com/mycmd/commands/ColorCommand.java b/src/main/java/com/mycmd/commands/ColorCommand.java index f8f4ca6..27a2df5 100644 --- a/src/main/java/com/mycmd/commands/ColorCommand.java +++ b/src/main/java/com/mycmd/commands/ColorCommand.java @@ -67,4 +67,13 @@ public void execute(String[] args, ShellContext context) { System.out.println("\033[0m"); } } + @Override + public String description() { + return "Sets the console foreground and background colors."; + } + + @Override + public String usage() { + return "Usage: color "; + } } diff --git a/src/main/java/com/mycmd/commands/CopyCommand.java b/src/main/java/com/mycmd/commands/CopyCommand.java index 2de7f80..cda4086 100644 --- a/src/main/java/com/mycmd/commands/CopyCommand.java +++ b/src/main/java/com/mycmd/commands/CopyCommand.java @@ -43,4 +43,13 @@ public void execute(String[] args, ShellContext context) { System.out.println("Error copying file: " + e.getMessage()); } } + @Override + public String description() { + return "Copia um ou mais ficheiros para outro local."; + } + + @Override + public String usage() { + return "Usage: copy "; + } } diff --git a/src/main/java/com/mycmd/commands/DateCommand.java b/src/main/java/com/mycmd/commands/DateCommand.java index f8bf53a..817ad50 100644 --- a/src/main/java/com/mycmd/commands/DateCommand.java +++ b/src/main/java/com/mycmd/commands/DateCommand.java @@ -22,4 +22,13 @@ public class DateCommand implements Command { public void execute(String[] args, ShellContext context) { System.out.println("The current date is: " + java.time.LocalDate.now()); } + @Override + public String description() { + return "Displays the current system date."; + } + + @Override + public String usage() { + return "Usage: date"; + } } diff --git a/src/main/java/com/mycmd/commands/DelCommand.java b/src/main/java/com/mycmd/commands/DelCommand.java index 7932108..c4cc8a5 100644 --- a/src/main/java/com/mycmd/commands/DelCommand.java +++ b/src/main/java/com/mycmd/commands/DelCommand.java @@ -35,4 +35,13 @@ public void execute(String[] args, ShellContext context) { } } } + @Override + public String description() { + return "Deletes one or more files."; + } + + @Override + public String usage() { + return "Usage: del "; + } } diff --git a/src/main/java/com/mycmd/commands/DirCommand.java b/src/main/java/com/mycmd/commands/DirCommand.java index c9fe2e4..000f387 100644 --- a/src/main/java/com/mycmd/commands/DirCommand.java +++ b/src/main/java/com/mycmd/commands/DirCommand.java @@ -31,4 +31,13 @@ public void execute(String[] args, ShellContext context) { System.out.println((f.isDirectory() ? " " : " ") + f.getName()); } } + @Override + public String description() { + return "Lists files and subdirectories in the current directory."; + } + + @Override + public String usage() { + return "Usage: dir [path]"; + } } diff --git a/src/main/java/com/mycmd/commands/EchoCommand.java b/src/main/java/com/mycmd/commands/EchoCommand.java index 784d97f..332a074 100644 --- a/src/main/java/com/mycmd/commands/EchoCommand.java +++ b/src/main/java/com/mycmd/commands/EchoCommand.java @@ -25,4 +25,13 @@ public void execute(String[] args, ShellContext context) { System.out.println(String.join(" ", args)); } } + @Override + public String description() { + return "Displays a message on the screen."; + } + + @Override + public String usage() { + return "Usage: echo "; + } } diff --git a/src/main/java/com/mycmd/commands/ExitCommand.java b/src/main/java/com/mycmd/commands/ExitCommand.java index 863d864..fb8177f 100644 --- a/src/main/java/com/mycmd/commands/ExitCommand.java +++ b/src/main/java/com/mycmd/commands/ExitCommand.java @@ -21,4 +21,13 @@ public void execute(String[] args, ShellContext context) { System.out.println("Exiting MyCMD..."); System.exit(0); } + @Override + public String description() { + return "Exits the MyCMD shell."; + } + + @Override + public String usage() { + return "Usage: exit"; + } } diff --git a/src/main/java/com/mycmd/commands/HistoryCommand.java b/src/main/java/com/mycmd/commands/HistoryCommand.java index 39e2503..71bd1f6 100644 --- a/src/main/java/com/mycmd/commands/HistoryCommand.java +++ b/src/main/java/com/mycmd/commands/HistoryCommand.java @@ -20,4 +20,13 @@ public void execute(String[] args, ShellContext context) { System.out.println((i + 1) + ". " + history.get(i)); } } + @Override + public String description() { + return "Displays the command execution history."; + } + + @Override + public String usage() { + return "Usage: history"; + } } diff --git a/src/main/java/com/mycmd/commands/HostnameCommand.java b/src/main/java/com/mycmd/commands/HostnameCommand.java index 934ac96..408f71a 100644 --- a/src/main/java/com/mycmd/commands/HostnameCommand.java +++ b/src/main/java/com/mycmd/commands/HostnameCommand.java @@ -31,4 +31,13 @@ public void execute(String[] args, ShellContext context) { } System.out.println(hostname); } + @Override + public String description() { + return "Displays the system's network hostname."; + } + + @Override + public String usage() { + return "Usage: hostname"; + } } diff --git a/src/main/java/com/mycmd/commands/LsCommand.java b/src/main/java/com/mycmd/commands/LsCommand.java index 81b4dc3..9111f24 100644 --- a/src/main/java/com/mycmd/commands/LsCommand.java +++ b/src/main/java/com/mycmd/commands/LsCommand.java @@ -1,4 +1,9 @@ -import java.nio.file.*; +package com.mycmd.commands; + +import java.nio.file.DirectoryStream; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; import java.io.IOException; /** @@ -15,7 +20,7 @@ * DirectoryStream for efficient directory traversal and automatically closes * resources using try-with-resources. */ -public class ListFilesNIO { +class ListFilesNIO { public static void main(String[] args) throws IOException { Path dir = Paths.get("."); // Current directory diff --git a/src/main/java/com/mycmd/commands/MkdirCommand.java b/src/main/java/com/mycmd/commands/MkdirCommand.java index 736be2c..b29a2b5 100644 --- a/src/main/java/com/mycmd/commands/MkdirCommand.java +++ b/src/main/java/com/mycmd/commands/MkdirCommand.java @@ -32,4 +32,13 @@ public void execute(String[] args, ShellContext context) { System.out.println("Failed to create directory."); } } + @Override + public String description() { + return "Creates one or more new directories."; + } + + @Override + public String usage() { + return "Usage: mkdir "; + } } diff --git a/src/main/java/com/mycmd/commands/MoveCommand.java b/src/main/java/com/mycmd/commands/MoveCommand.java index 31ac589..a772624 100644 --- a/src/main/java/com/mycmd/commands/MoveCommand.java +++ b/src/main/java/com/mycmd/commands/MoveCommand.java @@ -2,10 +2,11 @@ import com.mycmd.Command; import com.mycmd.ShellContext; -import java.io.File; + import java.io.IOException; import java.nio.file.*; + /** * Moves or renames a file or directory from source to destination. * @@ -21,14 +22,16 @@ */ public class MoveCommand implements Command { @Override - public void execute(String[] args, ShellContext context) throws IOException { + // 1. "throws IOException" foi REMOVIDO daqui + public void execute(String[] args, ShellContext context) { if (args.length < 2) { System.out.println("Usage: move "); return; } - Path source = context.resolvePath(args[0]).toPath(); - Path destination = context.resolvePath(args[1]).toPath(); + // 2. As chamadas ".toPath()" foram REMOVIDAS daqui + Path source = context.resolvePath(args[0]); + Path destination = context.resolvePath(args[1]); if (!Files.exists(source)) { System.out.println("The system cannot find the file specified."); @@ -39,7 +42,17 @@ public void execute(String[] args, ShellContext context) throws IOException { Files.move(source, destination, StandardCopyOption.REPLACE_EXISTING); System.out.println("Moved: " + source.getFileName() + " -> " + destination); } catch (IOException e) { + // O erro já é tratado aqui, por isso não precisamos do "throws" System.out.println("Error moving file: " + e.getMessage()); } } -} + @Override + public String description() { + return "Moves or renames a file or directory."; + } + + @Override + public String usage() { + return "Usage: move "; + } +} \ No newline at end of file diff --git a/src/main/java/com/mycmd/commands/RmdirCommand.java b/src/main/java/com/mycmd/commands/RmdirCommand.java index 6580c2a..2b14d72 100644 --- a/src/main/java/com/mycmd/commands/RmdirCommand.java +++ b/src/main/java/com/mycmd/commands/RmdirCommand.java @@ -37,4 +37,13 @@ public void execute(String[] args, ShellContext context) { System.out.println("Failed to delete directory."); } } + @Override + public String description() { + return "Removes (deletes) an empty directory."; + } + + @Override + public String usage() { + return "Usage: rmdir "; + } } diff --git a/src/main/java/com/mycmd/commands/TimeCommand.java b/src/main/java/com/mycmd/commands/TimeCommand.java index 5105b4b..6aee58e 100644 --- a/src/main/java/com/mycmd/commands/TimeCommand.java +++ b/src/main/java/com/mycmd/commands/TimeCommand.java @@ -32,4 +32,13 @@ public void execute(String[] args, ShellContext context) { String formattedTime = now.format(formatter); System.out.println("The current time is: " + formattedTime); } + @Override + public String description() { + return "Displays the current system time."; + } + + @Override + public String usage() { + return "Usage: time"; + } } diff --git a/src/main/java/com/mycmd/commands/TitleCommand.java b/src/main/java/com/mycmd/commands/TitleCommand.java index 7b95e7e..463e002 100644 --- a/src/main/java/com/mycmd/commands/TitleCommand.java +++ b/src/main/java/com/mycmd/commands/TitleCommand.java @@ -26,5 +26,15 @@ public void execute(String[] args, ShellContext context) { System.out.println("Usage: title "); } } + @Override + public String description() { + return "Sets the title of the console window."; + } + + @Override + public String usage() { + + return "Usage: title "; + } } diff --git a/src/main/java/com/mycmd/commands/TouchCommand.java b/src/main/java/com/mycmd/commands/TouchCommand.java index 777a45f..658cf84 100644 --- a/src/main/java/com/mycmd/commands/TouchCommand.java +++ b/src/main/java/com/mycmd/commands/TouchCommand.java @@ -21,19 +21,33 @@ */ public class TouchCommand implements Command { @Override - public void execute(String[] args, ShellContext context) throws IOException { + public void execute(String[] args, ShellContext context) { if (args.length < 1) { // ✅ Check for at least 1 argument System.out.println("Usage: touch "); return; } - - File file = new File(context.getCurrentDir(), args[0]); // ✅ Use args[0] - if (file.createNewFile()) { - System.out.println("File created: " + args[0]); // ✅ Use args[0] - } else { - // Update timestamp - file.setLastModified(System.currentTimeMillis()); - System.out.println("File timestamp updated: " + args[0]); // ✅ Use args[0] + try { + File file = new File(context.getCurrentDir(), args[0]); // ✅ Use args[0] + if (file.createNewFile()) { + System.out.println("File created: " + args[0]); // ✅ Use args[0] + } else { + // Update timestamp + file.setLastModified(System.currentTimeMillis()); + System.out.println("File timestamp updated: " + args[0]); // ✅ Use args[0] + } + } catch (IOException e) { + System.out.println("Error: " + e.getMessage()); } } + + @Override + public String description() { + return "Creates a new empty file or updates an existing file's timestamp."; + } + + + @Override + public String usage() { + return "Usage: touch "; + } } \ No newline at end of file diff --git a/src/main/java/com/mycmd/commands/TreeCommand.java b/src/main/java/com/mycmd/commands/TreeCommand.java index 7d335a1..cb23451 100644 --- a/src/main/java/com/mycmd/commands/TreeCommand.java +++ b/src/main/java/com/mycmd/commands/TreeCommand.java @@ -51,4 +51,13 @@ private void printDirectory(File[] files, String prefix, boolean isLast) { } } } + @Override + public String description() { + return "Graphically displays the folder structure of a directory."; + } + + @Override + public String usage() { + return "Usage: tree [path]"; + } } diff --git a/src/main/java/com/mycmd/commands/TypeCommand.java b/src/main/java/com/mycmd/commands/TypeCommand.java index 326b35e..deb0616 100644 --- a/src/main/java/com/mycmd/commands/TypeCommand.java +++ b/src/main/java/com/mycmd/commands/TypeCommand.java @@ -40,4 +40,13 @@ public void execute(String[] args, ShellContext context) { System.out.println("Error reading file: " + e.getMessage()); } } + @Override + public String description() { + + return "Displays the contents of a text file."; + } + @Override + public String usage() { + return "Usage: type "; + } } diff --git a/src/main/java/com/mycmd/commands/VersionCommand.java b/src/main/java/com/mycmd/commands/VersionCommand.java index 9346846..d1567e9 100644 --- a/src/main/java/com/mycmd/commands/VersionCommand.java +++ b/src/main/java/com/mycmd/commands/VersionCommand.java @@ -20,4 +20,15 @@ public class VersionCommand implements Command { public void execute(String[] args, ShellContext context) { System.out.println("MyCMD Java Shell v1.0"); } + @Override + public String description() { + // Retirado dos comentários do seu próprio código + return "Copy one or more files to another location."; + } + + @Override + public String usage() { + // Retirado dos comentários do seu próprio código + return "ver"; + } } diff --git a/src/main/java/com/mycmd/commands/WhoamiCommand.java b/src/main/java/com/mycmd/commands/WhoamiCommand.java index 5f39e1d..490bfd9 100644 --- a/src/main/java/com/mycmd/commands/WhoamiCommand.java +++ b/src/main/java/com/mycmd/commands/WhoamiCommand.java @@ -20,4 +20,13 @@ public class WhoamiCommand implements Command { public void execute(String[] args, ShellContext context) { System.out.println(System.getProperty("user.name")); } + @Override + public String description() { + return "Displays the name of the current user."; + } + + @Override + public String usage() { + return "Usage: whoami"; + } } diff --git a/target/classes/PingCommand.class b/target/classes/PingCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..918de1c5197d074da8588e877e1a9a7633b17cf4 GIT binary patch literal 2045 zcmah~U0WMP6n+N+8`6b9_$X*UV)L<2=asj*rdHbYpl*^RrC7XFFX z-t@X&fDe71UV7n=@fY~Cp4m-gBRram$;|nhbKdiw*+1T#y$0|AZVVmh)DY3pg>Hua zL;j3sEN)ja5BCm*AsMlniGvKl5BMp{5DH}?01E6Q7fmxZfgieap!%iHxv6YxMCLkejP(>m^8rVWT@aE3kt zBIHM-_L|vMW z9mVGi*H>KEag(YI4M~(q*41JJWSom(2{|2KsG*4aOe;!mRJUDj2o0+YS3=aKZswda zl@M2zY&2?n!rkV37D*BX$KciucTII}3M2BsB-Zp6LNT%wq{dC6^GNE+Me3w?e8&4^ zprS$sEr!sfDl7%TGa9I=G3`WAcUV5wiBNzhTGR`1WXhlrmSYje7PXxFJcK1n^tn*K z4jMlCV9@#{oig;#=)Y_F6zrw1UZYj1fdS-c)dK^3g|F$aC7|?#!Ig-S(-V)?NiL2;_k-m3Fb=+k>AlrZetO0 zd-3*9(tmWniv+`6XUHnw_zU!}tH7Vpp47`P>Fz;1!Bd*@PN-a$>5~JJbz=y97)BhU zbh?HlZX!+VJSOOKIZ3u@Y+#yvGvqykUCg3_IaG1iuX7C=S!c=SA%Qecuh%BNp*t1` zye$+FAx$r~@rbJ4B~*6s*oV}@w9f0wK~@FO_=_t9>jBJBBV85YT6bgsd{PZ;|fw|NZg literal 0 HcmV?d00001 diff --git a/target/classes/com/mycmd/App.class b/target/classes/com/mycmd/App.class new file mode 100644 index 0000000000000000000000000000000000000000..986d9e54b6378bfb8d0dcf76cd4d79e977b26766 GIT binary patch literal 5155 zcmbVQ3wRt=75;Btv)N2(y0oQBU)y(*w%N7{g#-#=o6D5HbZ7-mYLbo z;0sX%A1L_XQBXm_DxwHt`WWP)hyscti1GhgB+^-emh@(D^!!TJv ztBNT|2uvDh(^D)`wxj0_*VCPhT_|W)&J{?s^^LP4o9_0ZW=zF21=Cd=ff*AN9vCIK zKt1ge)t**H8g_bP+>R zX38=0!=9URbXRwF>bXt@3n$oYAgfuH?#P`kR5zE-O^2FD5uT_n&zR~6*4 zbt+EAdb-qbdkaNxGzjl)F`UAWv)rX}NuP>-oJN6e(KHxQOQLk$9;Iv#HmNvWs?g%u zef9+mY0af}0~l0rhKeC<3AGE7q{nfzQCg!VYZpg1p1YapM?-hC)iN)qWA}y)?Gd92 zwlZdGCn_=7g6%jO>NYqqn zVipu}fy}F20?CT&gUO6-nyie}AyE86yhXuVRlE&vXNuPBFsKS=un0=eo@-dSjA^^N zOJPSxL{d490s&IV?pg;_%qN5LA{Fn%#Z+8Bzobdd6Dm>Yyln~8NT<}+SO!CsPCae zF`opv`i&3c5jpZlZEBw-tOQTDc4-tB{)|_WkFTmV-os9X72^VwpK6{{74`b0o)QyS7A>|*iYr&>{51E!Ox=A9F((F&{Goh zvG~ev~YL-nnT^Xqr zUV$Yhv;bsO=Vqmh@!?AQ$*JiRP0IRFG3&ybkiv<=2rVGN)uy)!bdb-?DlsocuT2?k%0@u{`36+KAt*>Vsn!3BN&$dTO#qL9$ zT{AKPD36?o<+Y7!L<>-1kd&gStUph%%<;vVl@WyTGDD_7tV6B6um9^WT@U z8khHldAy(2@!A45PfScS@%cAWX}$&DjU9U-Zs$iGUgT3w%je(uRLcwS5B!rRt$Wej=OfOy+P`ccCf$L<6Ui~ml<#?b`&h8`4lLS>_R~1DbPUVJ zu;KuY2FB2}d<@5r;l!?nWWyMGuSL_IgHI(J5*x;FYFA^jv3}JUHg+{78yk|1ckjdI zdvRu$vMkxOAKU71FV5+TC1Vd@X)=~nmhQ)ndVZ46xqC3u)l6Z@<}r*MfF(uE+=C%G z)N}xLK>H|eUA7;*Ebhh5uI6M@vUwjyyW+|C1DKnPC!5Cbj@_6RV3P3zcvpo>>jW-) z4lburF2&W@&E~x!FrtN-G+2zk7PQigQ|W_Qn2d$|k04E|2h(s0rsE9E;1wo`JdQ+( zD=x-ta+-@P>9wo5dN=0ddfo|d<@aq^jJwc=htZD5(Sc{Nl(LqKI;;qsbs^jcjqI=qC-MFYnaYH^Wh6iw8g z4i>zH1$%j!MWLBHZN-ZsE?O8aX*?lRF^T8bVO%ktBY{*gnNrKET3K19aBc`quOO{J zQLtUXf|syJLC-khT7%i8<+pNP%cAKJj2~^ zBVuz$;ypetV>G^RKi*%DEggvu`M8qwM?(6eKCU8tO-Nts<2uqG59v?%xPkPiLi*D_ zZYI4aq(AH97Sgwd^cQ^GM*8-UzQf0zq{l*fuaEs(nPz@C@Kqo8aKU{c{WTx=lYSti zzv<&a(hrC9w|zW9`gS|Wm*=8`XH{i(aYffC#^UNDJJj=M%jtHk8Q%Syf1h0ZrP2C z_=m<7I371*4Q}UO8TWC;qm1~caS~oYh5@*iG0`jLVVzislSL2zus9tX#tV+v9K;ub zs0vC@Fw#ojPNnoZF^v%?^{5j^h#7nzi3V~LA{jhq2G7~SbFNsz`8em=M2A?0;3?+!i>QqEQC>sx(SshYoip`Im3W3ulR*0HP=P5J62Ly0+UxMIx7irc-a2# znQcm4q}yLmc9M0yHrmRoO`|I{FI^X~R literal 0 HcmV?d00001 diff --git a/target/classes/com/mycmd/ShellContext.class b/target/classes/com/mycmd/ShellContext.class new file mode 100644 index 0000000000000000000000000000000000000000..193c5348a461e17ca919ddf8e2928789f144f24a GIT binary patch literal 2000 zcmZ`)TUQ%Z7~Llqh71FQ5U^HIN-O4q#7n_T5R0@GG!$$wEv;IIWEzGhGpxy^OMG+r zEA-hP(5_{n=+Z|Y{7qe5?lUtpRo1y_JJb>PGkIY$BClc=mla&m@FwQE3*o60 zi13&7NT&MgokdDR8W{n_Y}}|H%3{%gdqbGV+X@ym@B^BG!ZoZa_)No^tU$sO*>!|QnvK=HhFxpAhDv8{Xt;^b z1%?T}cE;j(tGq3fWh-rH_(Hle%EPTBlDxz%XxPLpmfbO!U6vvfDCr{5>eB8-fmqS3 zTDseG7j4%Pr}(rV-{%iEv@V!hSM)U--G-JWTpYap6@zZ$d;m63gihTk~CW8@IQS2Dz_|zj literal 0 HcmV?d00001 diff --git a/target/classes/com/mycmd/StringUtils.class b/target/classes/com/mycmd/StringUtils.class new file mode 100644 index 0000000000000000000000000000000000000000..7d53d9dee99fe56f00a7f9de1bc4db546ec87834 GIT binary patch literal 1647 zcmah}%W@k<6g@4?Lyu7`JC?yoL>^8Yy^u%%1uP*FYyvWpMPbMS7I-`wq%qRSC5-|p z7AdN-;1^gyB@1s@kWGjwD#e-)V9h_U!bKuZkLB3Grm#HIx9{WJd(Z9Z-=6&Z2*4Y7 zKY{>)IurvcG=cbrdDAR(Ot)2NtZ&$sC!m!b*YPR>!BqN21R;cVL<~e>JmbFV^&PiG z_m1thyteONjo=t2bi@rzVoKoHK6>5seY%b-pr)$TG<`#uHjuy!L9DjfzsBTBs+wNZ z@w~v~er(nC?3UdR-X4ucQJlmn9Z3T(;PhUGq33i8HD^G8kmK2X)9dvGW>V>z58|7v zV|^)#vpA@dM+P(`QqO7KHPVO znBi5Y<(l5G&pMX>zo#Qnj_fnC+8g#Q`?@2C7(Z}E@{)fZx-36d`4TS{R_N1Ag>$#CK2Jq5azdT-~wVu z)0W2s77&L+YY$Txa{m?WU(-|e`~hR5w7-fX5gl5tP|}FK?CVq_)bSd13X*8zb>ELn z5Vgd3DU~U4;JD4JvO-?pr1mmGj}g^zRqSBmZwT=i$Axgkh*>lpA^-oX5d18J_zN>T zWH^j#c#H9JTz_ztjF&}yYPOQy#tDH1Wmeh78G&yxFQs{bUlCeRGqdVLWQtlsOWs8| zp;czp`qt?8+>eY`e3s^k4V)n6N#;3)Irfs}U3dwnIqNg*`5gP1^BJkI`z(1_^m&-W zG?v((Dr>>pC4`;=brPOd%o}7``5eQ-vamqPm>ryL_t(V z3~`2Y&-I`5qNUr-;)9*%-0&IVYr+=(IzuFzYn(v>XA~q=j6yvYUf=h8-liz0OG)Qz z0g!NtTduJEy6g+daSv7q3JimO;WPE1gZc;r8J zb;~;e6tY~-J(ewHRpcZwvi~hzwl5n>V3}cd!y*dJeNFc@zr{7zaeU1bE=lCL`&2%I zywq@3T16G_;{%4I@CG~t@&!e%%dig_7W(~=Mgga%btl1Ys`yBP#rdA_d{4SQR#B3! zQQ?t3;Sr>^YbuQtP0E;eT)&AEr6g^iGAwOVBVI5!nxWe^b@WWwX3$@Ubkn>JH^ei+ z%|Zg7F)UVEG??5A0*r7zv|Y!2L23?hk-!}y`Jtybc}X)&ZS9bzbp>}BW{$>=thR2O zUa?|ULQ_GNVd5yF?`DWr98=C#P1t<1+uq^sw!R~$Emd<2-D>ErkpF#W)NcurdbW0i zMAnH~Wg0KO#|;`&hC=qqe-#)?AHE^wT!ZxJ1QWtA9_9^nq#c{@2KOeayG=Sp`V?d; zZ49p4)c=*Cp&{;Mi$~8w|MHN?bze7L+}At(mPbwQ8LsH~!lBy|>q`D<1nW-MHF$V2 z#}8>PNI=Zvb9#OlzM!`#N-I4<^!<|linKCXV@q$qUXw9`d-Rptz$Ct+uNnrRhWqr# zu!#rsrDRqmusHc%F2DT+6Td-O>0zvgbPv<7mm{m2`P5tw^9Ps@{ntvd>DZr8DKNDp zW2R%J=qoJzfy|@)8?2O~)6pIZ1SLH(hrFwy_r?J-a`)B&)D>xzUtv@N-IhRfhDdPk zdq|Oeks7>2)(p~^qnB#|8m`cdzls7DaTC|*qUBJ=64tSdDps(CJf30|Hm+kAH}Eq> z$lj|^#t3sM>qByuRolT%VFCsS{qn)-cE;D>(! DZt{Y& literal 0 HcmV?d00001 diff --git a/target/classes/com/mycmd/commands/ClsCommand.class b/target/classes/com/mycmd/commands/ClsCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..9b6af54952042f5f4d90ac5d69fa6546d9c42d4e GIT binary patch literal 920 zcmZ`%O^*^m5Pi+S4zR4Se7L$RF1o7%x=i9xbT1?(Cis!Ca`Ds*9q4tYhs-pFz57eN zcvTOYc<=}KZ@e0#Ru4pQ#Z0EFy63%D)o<$S&(B`~Jit*F30O9gIi#?`P&nnUxZ`m( za-I%Og{v7h?n@>0F@sfa^fO2!VP-1CLIM z-N5BupNG=y7l%nbmJ!2#cd10#`C@Ilii7HC&|mq3SeDNs2T>wC>W*p~xtvnxDYlQ!c6 z?_Z%cHwU1KtF$9KQKQw6XM|2ttXRj@!reE>e}MfFTdytl_SZKfX2oK~7*wW_tk7VU z>Dh^en{=K)k-EE1NRnBUFxdePe!rWBByIEPgQjoN*3DwA@+IH;tv{guq_o{vqaYEhT}$hnGo!Qjx%WKooxlJ4 z<}Cn6u#v<7Vg}+VBrqs2cFDSIWgW|{XU|kFscI-NxNN(2cvK)ZHGMt_6GH})DGVcZ zmwPGnZMRN$N4fQIwe4OQ!U#qUjHR#@@^1I5L8uz^@>+~BUTnv;z3dZY3CX3b#*&F` z0{1@|Sap@lR6WP@Gs_jLx>onSmRmcz9IEy3XcF6TuYnyYq_I=ro<2kZMpM%|E+b7v zq1s!F*1QyL>%J7;hh5x2b=C5ZaZ&N9!gOA5IFrI|JV2JqmeW#aE^3zi^kyFIJDI{B zJV+MxY|CuEqus4N$ct~JtH|+&CRCVPGm`%$M6dwh)_gQpdx?o_I z`RPJWw;C1YpYZ&K6|SsTRWr0b*TkH_V!`Fw?OG>`Rj;OIGmTadW?F&Dgjc-Gs#>>d zs%keZCsVWQb{Nc>nCHq?)~!a(8RLV`%SQC z1{MyO_@LGcCXQ=;$i$=6hlxL-HSs64CjLWO6JOMt_|sYw|Af}We^_hc&rvTDe_m_i zKcY49Pisy5N3|yYV_Fmc39X5*Xia>LZMT1p1gsqseuutjww2p+px+c3S@Ngf< z=4R_dV&YTm+KCHu4HKUcm@la?$b_qkRd)l=QJIULucG0}SZ*!Tou#NRbjhC+*m3v7 zSs^F8(hAj41D|8RRlP>Gakbj0Wob3Y6J+yxHuKSwfiJLYx=x+fTv(o6Coo#HT@`ie zIjiFEjVyXq%Q)3>|WWumn?+!Du9t*a{6Cons8VRNE-7)qJdJ-16&8jKP{llso>{1_id1LUNq4n(d?-c)`G{JWaYO z?M;Zla7_hO-)3PC(&sUESMpkZRh_VP3Agrkz^u*%5BuYu7Y3nkHBYH< z)vE<2uD9D$usz@8ZiE;e#BY-LEq-U<_qzH2ATZfYr0rhz)>JmiC#%NcI$>2q&*zL> z>z$E~V-)5jJJM0XWYP21TFs@+h3R>77x3KGrt0I~Tc3B2@68l>%W+C}sMr&!g6k?j z?^r>g0t0Ue?Af%ZeoHm*XMtV+-<9`Dv@c#r&-3OM_&iUcI5lr?$}jRMOD(7qd;bb? zgT?^9M5+G<@5(PzrXmM?1z+Wpz}N6~N`eReNwO4Qt?#=Pe@!_1V)LhGHee)PMd~eV zk@sw1{Kiad0~2rK{#<+}-mwztcsj9x_rHYrjdXl$>}`DD;9xot8OC*N&zTyYC0y(M znr3Y5Z!pU-xlk&{<$+Q;ArFkSN#8)@^_>)5twi)p&d-$Vf9l4*0? z=-9(_OefRBH*p1EDy~Dnk)PCAVI6WP;tXaGYuC-keXLQM_1lRgZON~co!Es5w!j`d zz;aLGFs&T+BG0dhBIbyG2xrMq#w;v)R4|WsuplOJKrHgwUdAEuD6j1mEQzzcuAkvm z?cfpNAuq0ArQIXfFiO4@zJYHtc9E<37A=FkTk&mtho3r0QNefdJ^r&tJcjSniX$tI z;0Lr4ylj<hOTTJ9ra6#0xOFl9Tumts%yrz>7pAxr$L-qcyDiuhW~_dWnAQU0N^W z6?XHFnU4c7|Ah$y=56ev_3>+-?q=UAAbriUf?yn9<@5t z6U|9Xe)^AO?46R6JyR09GbL~IfqwSA&{KV&G5o9@;OF=S^$0`#nz4V`mcN2#Nb>mx J{)E3E{a-70z>fd` literal 0 HcmV?d00001 diff --git a/target/classes/com/mycmd/commands/CopyCommand.class b/target/classes/com/mycmd/commands/CopyCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..03cb468f615ddf1298dc8d30e841ea555b77d95b GIT binary patch literal 2665 zcmaJ@+fNi%82=q$IqN!#peXBg#2X;8)>dm5v=;EPErKnI1$!H22N>9$S!ZSydcW8{ zHNG@y+P*aL#ir>)Z5n8_(I$;AeXoB*|Ai*4_IG9$7jkt$(-U^VN}&a5 ziH#aIVY9$`(=BF-b7nE08J@BVg+A8_tXT%XYSIe&%ARLALBH)W%eMBVbQDf^3eDK6 zDz;5vN5wf)4Q16rQTp38v|3J37C#4{QW z;!v#gF&_eT>}Fmd(RQJ?J(t2^JSUOW(2X8}b&K$EXzE_}?7(8zXp_sek0e1xX)0kw z1l!7YDV$>(UQjelm<89jB>EO32wQu0%5yIpK0jP8l|0M$Ee6#R zC&Q8j`Jgg8Ch_7TBpa3+IzDS!CB?ZEav0EX8iN8U_Wv~DNK@vs*!(!Vnm9aXG`x&g z*ovYtW05UNF;;cYtAFE*K<)ZGE^`c?>?7cZ<*`Dj` zCBrlLI`CY*;F?B(6c`cMx=dg0iiVT-GX$CIiw+X6k^;**mDg-upPOf14Fk4g4VH`J zmUmXwRG?`#b*3HgZvzA#_J??6|@OYLnfcUhrF&u^Q z@`OOmgEWSF)<8 z$7>#aS-LBiYCOn3qfi*;J;7#aImfZQzJkHA_9Z?R*!2XD4~Hsog|qShs=S4xys#bT z_yH6+&w;Mv%8wwQqdaA}3a*Kc1&ABm)L@KHB?fQp3w&yk0$#)GJPEvkH~FM-%`|~l z@ZG(=w-eW({RG*xY90+YZlQU!a~>P^)*e{EmcgZCojPXg_RT~88YwP2zlp5&L{{yi z`xdY_o4AFp(RAGc_GjxGb^Myl%5)+v=ke6&p=8asSd*?#%i8ATJf6M&;4kI%2<_AL z^LYL`(o~LiS~i)MX=?SS<(+h59;cMFzOvJlo&xPp*WbC0=4^sMO7_xC3;`-2W;cc_ z_?*}9ReXUjxennPzUTS_Zs2EiJ>xh0&O5a>tlAjXvl=a|UK*>h5e?Xkt=NJtK6|hY z{m^OAN|YVc-wA`CL>GI=>2~_*pr=;ichEyCaXX3JfxFm?Kd~?D!~{~b*@3tCl$fEH zahUw6GKN$9p^~THAzXxo2}XXGKQ1OQ#U1-o>7Clym=61SkM;$2dnHh!;0E-X+ literal 0 HcmV?d00001 diff --git a/target/classes/com/mycmd/commands/DateCommand.class b/target/classes/com/mycmd/commands/DateCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..d4a9639a1c5937dc6c6b4ee6638f6d336a684e77 GIT binary patch literal 1512 zcmaJ>*;W%l5WP)+31JinySNMr7*I0q3jtJu2%adO6T}Cfnn{}s%#t(HLGmYlhWel! z9{d15%45xfOd$9$UEMWRx2kS+*Y7_^zW^-Zbp{HuaUB1tCi#t_)b7xl= zlA(LibWFL-kjl+&_aKcP1sN5+P+QE)O7N3NJ==g~a23}S zXeuUg{kX(d8YsnjK#JuMPstRIQMc2WVwhYt{kp}Qz9wrzGa8;J9I5#s&02-1%BL~I z(EHx!Rk09i6yzAL8m_I|O~bC}w6nQW@%4b&Vsub2$1reW6RR0Ii*AMJ?<<*(c-ydd zgtx_aEYf7d=4^A%49>B#Q`SskMJt^k(e6yN0u?I`gwY5(o6mhrG$gJz0Z^_9%Oc99 zIFN(X?I?V;mKm25vlS0kX1Ayal6o*~xE zpz8hvXZhfwl4`|ur7t~ReyP}2G8+A!AfwsiVRaH zkIQuS-94d497OkRjT_SSnhal(cOo{70}74Vo?Uw5pK-@?;F!-@#p41Lv(^)RD}7hjNGu zhZsDTUQ%Z6#h75=3nfTMe`tN^Mc=VR8u5OlGoXPP*X5 zzW5_-mruU*)%rl!s%!BB{6+19)qQ3H2@ribmwopB_TJz5&iU)j%L4!(!%X4~A{wGP zVu&;JJ>-vg&gM=fcWdjRFeO8L(Q+)g#1P3&Zk$B|XEh{sbU{DnUfT1esF9c3prCXy z0J7ZNZO?LKNqU0U@(J`XoWJAqidZnp!ZsGSEn7Trcug!N(T8&yQabuEz|h|zoNem&Q;ew90Figo!x0b8znYD7Rv?FZ0;5t(5 zQo-F7Aqx%96OLTAJnAevdDMc!$tRJwHKUqDnA> zD}-weA26J2xirlT(SlnR4829m5o?Xwmhjg3mQ9va(KWff!97duo5rZzv8dm%Vhf2@ zCzIt#4q{iB4M{jN+0D~Tw8ghyHtB>aQvEXY9KU3;t6o)It%uN57oBmhLUr|bNJX`n zhf*5)ue_wPlH_J}mDht#H7slR^7tzXl+4go7QX3Ob!oXI_JKn&wyT{X)=)2rAz5-8 zo+*@)h~w6E%%~m+{<`Z*UwXX0D&&q^_7nJqu1UEYjw_9Ax8al*43@w;VTIZV_rz2G z3Map^Azk%gNlWC|8^^av+{1khn@Y9cF^sq9vYbb5Rpdg}LLskkQ@Y+B!!PX;ZaRiV z-5@EE0LP22TW!?yr|ECA91C3EtBVfq?ROOZWclWU4mfN=6u51dEGbA!`c20XUcu(R zFMJIT7$#2j)TvYrMDghVyV4I3_JxbMM$eF8o?d*EX8Lq#{E&7zni9Xy5p2eef8K6;-|txX@yMzre_XmeKZMJVBS5$Dg8~qBHTAcn2VeXUHo1)RQCoOw-=i z^vebNpJVLVKfkK7BSG1-R4gz^{SBcT8T8QiJC0$@VFU$?qJ%MQ!a$Wi$Xz=72@^q! z*C=8RpW_pJ3XLMx@fofY3DjD%ZM7<3IiTV(d9DyqU(oq5w4OIeXt=@H-p W{yG>-!FUJX(@B!7Kj24fA@eVbiPoF| literal 0 HcmV?d00001 diff --git a/target/classes/com/mycmd/commands/DirCommand.class b/target/classes/com/mycmd/commands/DirCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..98f3807648fb0216cb59a44e617ff83f51e2f878 GIT binary patch literal 1925 zcmaJ>T~`}L7=DI)%#v=QgoZY>(6mww6_VNytfZngNQ(wq38kf2b=VBamd$R??xd%= z_eZFg-t^Xbf#>vsOE0|g2YHI`?gm&OnsYMq?mO@2Gtaz#y?eV0;8XmNLLXuraUBUH z8P2>AFGbN3cD?v;^My1NL-MX^n`(|BmY-ZpK|?=BO2;Ya3?qiqEH*nvvsSD&q-B*I zTgg}Cbh<88x$U~rR`aGyar2XvAhhWe7fef*QW(G>#~B?%NHgfsLxz6K^ptPsF%0D= zH;(%D<18{9BRbCE{E?cg9Z$(7mFl#qh|Gc8BiFQ5Rk>0$OBzNQ2A7@OmLEU2<+SZu zA%%+=;~3X*2|0%0{c<9X47}xsv22Q*4?_n)QC!ommwa#ra7D*^m|!?%dek@p=(wE# zx@Q{R_raWBT$#&h$djB4e!kZ=9Uo$fG7xObqA3~9?gJK0k)}H<=qTbk!?~u|mV~z< z)Du%RNb;1h6#;gqM{zyMJ*m=ggS;yQJ;4%yBkWqvYj4)NotT7|Y3Ec!=8W)ibNfe~ zf`(gkS&uzYm$SY)x6u-+@tk9ZVeF76BsD3lS0s4Kq0DiIJP%E}YKC~(sSy@~71Nf> z?dGO*SH-49nsmi6gtaDI)Bo-&Yo!E-s26;WQ=EH_qdet`){;~Wr{-y> zGW0Pvn8f20*6@Vmsn5A}hKb-=1X!8&OJ`daL+*z(To7Hh{}d%)*DwtJfNq{1-9*K4 zw%e`JNeV_ZM;uo>E!o37ig-A$O5HgVEwU^ut7V3JqE2-@695QSseufb1*KzyC;zp9-)FU6)ksSA}6q3hmJ41G8Eiv6|jJ! zj*@{zC03b&VbDja!u9j0Ffg-#Wvu8}HL!;Di;9wf1BUET;P?#twTWhIzCGk&S9}-? z-xjTRmnG_{1X(1u*kV=ryF!;pGbZ_ZFON-zt>;cOa`{PQa?=x0#0SC*d{YjE8QGx_ zelrh~7~ZPPQ&ZT(z}!uMdpfQ&Y}$cmc_+5lw`k>YzaLrq1Zz(=I&Ls5o@0_@x@|k? z3x;CH@x{xrcPPR){LrP7awo94+vB05_Q_#Z4xNa>?3^>v>OZv>wOt$wdn}2lSxYx8 zxp#`7I~1{4yYhhoT$RdX2%-C!Kr;=oZ|D5ZMXRPPI0G%{e=rU##;ncg|Yo3yiNW;Ew^zJq)1dwrZ*=P2|bbF4(`U1RW!+82KT5gi_F3to!-ZTL|kE%Nv(YK3r%U? YnlwSL{bbD&)qgdeaAH9|BGynhq literal 0 HcmV?d00001 diff --git a/target/classes/com/mycmd/commands/ExitCommand.class b/target/classes/com/mycmd/commands/ExitCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..0b36c4514ecd55685ccab67a8585faf5b2258b87 GIT binary patch literal 928 zcmZ`%OK;Oa5dOAF>eO}maGJIhXx)~FQ^1BR0WJX~q?95Va^d7St7I!bDtm*He+3)> zao`8=qY$%pL;?wyot@qJ9y>cfe|`S};3*#ISV2ic*+2!W3|p7}2j30-c;H_2E_oms zR-cGi$Y%^CyV+es6>A!F1M4vUD)%OtrrFCsXc6ttvJM^I|Nd zhzHjBq<#L}aU306*w$bgsAGqrz68mjT`8V0CThFj&P@_AQMH;~os8`o*uy?UnUewq z`&F}B#R0>vlFTeQ2rq7j)?i|QPkt}gy{etWl8+^|ge>{#fJEv`V8j~~l??m;cbZF&xq4l_}D|(RxgoOOa8moP7oR zM4J_y(5kKh6Q{HqMFDQ%Hf0QVaFKEFz+A(`~af*^Su^60dl_ z-%-)=(HVRc2XV@bj!!)3vk$)d7dYdSBP0IK*$qu-b(~Cg&wl5-f4}cL=cm6f{s3Sn zK20KmHVsi7F~kLy9XC&ynUd+uWDZUqw+g;MeAsquf0sa8-=>LnB+#xQsiOnBz?yGVavgu5DnSEBNk_$cr5)HCI=cv+M^X*b*%&cTPuoRsdmg!iIl)#dfU0R#5 zXnaFoAl2kicGE(Vh7|(K=bZ`dx1$>?HLTK+#_E>f@^#O*%CzFvXyv*9`5& z1-ewUtp)|OiZowx=uvar4XqO$=)wja8__4wF=cs$s$KDIm;5XGnzIrLq#)2EWd?NI zEM;Of&z!MREO}1~ZSoOCPXf0J+?X7z=f?IJznwa5>^@=IC3CW58DSc|p`(6B?t5V9>*RRRgyx2mS^Rt36SWcP=3D%go#8t&9_ z7j_Gz=3&ubVV;VnH*TGz1H|ORQX;2g5B3T~9Ytwiu?qIIT`)rC!DIrD3T)38 z-6xHb?fHf~Js(Pg%QM*fhF`R7srM={y}<+?XRONn(NNPY&2O2ootz7G}hfJ&ZLGac3k7d|Mg!wt63+lLd~algMH0)T^M(s87y(? z_=LBLQ{&7XH_Iw8)go#_hJx%1ZWHWHaWyh0dql~_R2yF%evK>!Ey0MRW_58Am$wQ9i{A*9*5 zO{dVH%nwO-yRPr~RkJc?`9*iiOW*~L(PWsIAwwka60y2x9=?k93Ymm))K!z#JC?v} zZ2kx3AXVFM5L#?>uU05Fnt}ArINnO)ZM>u5U3rAOC$N6LOty2vowYJSwSrS+#4K~^V zX(gacUbT0et67xzq_xN};`9u-Jn%#GOE?43E#v*?p>3YSk_di8*HAPay@dVW;JVEh zaXoMWH*%eh&Y@S}A~rQs`UNgwiQMDrEZQlt8Dtt%OlQ#Ee{KP28)Zk1zi}CF3e${Tpt*U$@Q3AcMZkUaplG(tPWQfaNpG0Dj@k8T^G?RE-{CwUVq*84fF$ zW{q9yiBfhSbvdm5dFq$6IOSJTvjdIV51|T=e5}va`d)^QnyTw%oWPT;exuR>|4H)K zDKUxmE65|JA)(Y8VORcJpEQJ` z)JGeFp7sSuV$?!;)s{N;HMb%vp>ajps*(_Zu`LWl$V=P;(Z{Y8-LZ&h8=h4Lp2PEe o8;s>mDmtZ}FRJIu>iMdAzK-|FC9jDi?4J+f?f4L<@d?uZ0G5stFaQ7m literal 0 HcmV?d00001 diff --git a/target/classes/com/mycmd/commands/HistoryCommand.class b/target/classes/com/mycmd/commands/HistoryCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..dd490a301456bac7ad68df887e846455005fab73 GIT binary patch literal 1854 zcmaJ>T~ixn6nHFpbv*?&^y?FEBzOw5 z<^Y$Ux7~ar0=J&Vi+D-Lyn&aI7s!P`1|1MhD{$wyj8KR|ghbK5?bb^x`$0Ar3@lq5e44KOJH7!spw<6q+@k3snBnhb-H9=4eLbTG>;@XwoG-$Rt=tf zWxC22xLBx+Kr}2$;Wa8>xBZr59{YLKkX<_R@}aa?8Lvl53U9C`w|%oNuXdTzaamxY zSN1NM#kkCI(REy56ZF(#F?lI_hvX$wwOzT}X&%V-o_XLFk?rJGjR}O|d`% zi`AYdp2Fv}lyq73M3y>M?h^*$f{y~?@?2%BGp=*)JV@p2=~>EG&h_qqS_MWwi- zSjh-Nui5!r26H@ab@N<0p}R2*f0G$b)|6=-?U=2Yo{2;0TWz})R88P)_kHzur9iS1 z6i^^t^Ez!yZrK6bxxsR+2mMaS*E~=8s%^G*q-uDFehRlpidfH!%s4(vqlP^lw}WmZ zX-nZF34_`01Mf%{qn8jh=$2_k&;Gmqw-PHx?zj009qBJsJ@2T~Dh=n{CmAr@BXc9v z`>PgBuTuXri(QmW$En#$l24=Jy0Tq%Oy8HjjxPk3hjJPPRmVMn`Ttkt;EeLZ0^a11 z6?ls;S>w(@%k^#EirfYFs*O1uedaA-%yf6!TyvaL&x zq3^Ce#iYRZFn&fZJNFnbJW5>ArZtKe1b)CG#nYPh_1d)d6w71y6)Vs1DnP|=HSy!$ zzX#E^F!}|KcyPQYG0DL-g&AZxZ*y4Y^nIWE4N3xJm#J}{J~k=U0vs{M;Pe4L3~_Ja z8p_Nn$@_I$CipMPDUy6d$u=b!B%Whd$JBF-i9fMQ;|e~G6J6sT5R%9if8y59(Oe%# qiGMlzWQ6JKCr#%^m?lsS1MFazdx}v%<#!WzcuVv2Iqu?1%>4tf@XP)H literal 0 HcmV?d00001 diff --git a/target/classes/com/mycmd/commands/HostnameCommand.class b/target/classes/com/mycmd/commands/HostnameCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..2f95dfb10ae2bf5737adff15f8e716af12e86c41 GIT binary patch literal 1366 zcmZ`(%Tg0T6g^E6I)p(WJS08?q9h`W?+3vLMi8qYSVq{m8YW#~Ael*JCJJBVR$ZXw z!mU+)lzMs+NWfUB>h8JS=iGB{-_Eb!-+usjjMW5s5Rr%)h@n?tXxDmgnH9?|n;YA^ z$_@m27ai9Lo(M!T*{wL@0!Dsg{q^SC5(`mFw&N}yl<;o;COBv7npR@-E+MUZd$YS z(fK6|yaq*#HO)Al`I_beQYx!T1yi^pF>T-~t{st|JR=}$8c}gc(ydA?d`4jA zh2z&M)`6c6c2wFA>pSD8Y59X!-%IaMluK*#aa`TvcdPw^jYEwOwH(8Q#N|Rd@7vD;N!S z9A4A(TAPWht{HQ*ulAMQ2uL=cdG~KibdVHxRHc&l+(7LIx$KsJAgERN@FI_IjI>d! zUZ#kVE|kn^H(A&`|Kk^k9~D*GY_~{#-pchXt7*0bJ2sF9Q8IZhFcts<^kNs9exSi#XXK1e8|%=&XY;`4Sj{VpGbbg;338e9}!=O zCeIhX;NsjNCO;F9z%WLULL^Kug*br|OqAlzdG1}}?gfnFA|q-3Cd1@+nP8ll`*=X* zOx2R1R}b-syn3~O9HsP(ashb|=IBSwf da^@4KPW#gx_9Mskm%Bi-r=i)d(3LR3%fHjqHmv{v literal 0 HcmV?d00001 diff --git a/target/classes/com/mycmd/commands/ListFilesNIO.class b/target/classes/com/mycmd/commands/ListFilesNIO.class new file mode 100644 index 0000000000000000000000000000000000000000..4124c9a5c484b21184f6bb41eb38a7d94361e5ef GIT binary patch literal 2334 zcmah~TU!%X6kP`bCxihkcZyuJC>MdWR(c_pwg#z`5U5aWrB)BgKn9YTbY=ol`&xg4 z{sN!vg9X2@m#04TANe9(Gn2#w^4WQqIkV3`YoERL+UNZH`sJShKEtC3>QFBc($IiL zfpfcRUq!RZ+=;Gi?dmC4pz*q48t$Ax{n+?M7-0c1EfJ~mU2|>2+=)O#i$tr2Hk=da z@Ucw8if$WOJ-Vvgj6;+iouIL?#G6RL>e%L4(|BO2!iYuCjt+@V4PEFy6J~+27^dCS z59SS<8Cdoq1L!IzFjI_Ljdwc8sb#Td^rBDVT@C#>FECJ@)+uj+u;J>qVpxIhu_AWC zHL}sgqMd+)7?K#)Z~+&&RUfd*ML=ehlhhxQD$;(}TQQ>H5-tmbOyAsD!mcP*Ok%8r zSCwNECU8Y!Qo|Ict1EZtxH_q+w+f8a74XfHt+JqQz#CED7wD}{J7Ji6D|y$jOs^bQ zHGGI`0?md~=0o6WO}dL^F7NLRQp`(q6d!5$7@rV~O7W_hR5`tZ%kn}`P!vNGW;Mic zot*8fY(Zby7Pwp~uRzGLVkvyOii&Gz56o%!9A60Z z6<5{-6PSx2j(Lfj8W!+XNt@Mla-VsR+^k8yEB9G~-tYvssNrj`AsbRz%h4qgB`|;g z>lxcRP+M6&f+Zw1tYB53MWxegg?!%D9Y;^IVwK?K6|wORiQ580DJvJv9j0>WC`UPE zrk!ZQaD2v{7;-ZP$-0pEAKVy$ zbIM@y-D9;neuMLQR#u?1R`c^ba*EwNbZWk=JQB%v_W~(LT8(xc6=W>`Y z4ICw-`Bk~da1Y5%K zwB^5k7s% zTN}^NUTOIfc!3+wPL3!4!3aTb33~J=`PW(cYn}~F^@UzwdFrp{+*KPMAjh-A#zQ>f zHv})6iwN`GhX`-FHk{|BF@Sr#dLCei-u?KM^mv(0(0_s_{#|Tx)P{ZhKtGSL$M_NV z`HkQguG%Ccihmw6f!7wjQnaKIevNL4QHfrO!4q6VgG9P)-~d7*euCDs6Lp-BXnKW) zgv8PbS`eyOyW}lglCKz3XQU9n+vGpPaUBfo^4rRhMf;xr&Y?hCg#Y_w<7f2!2Z?K8 AVgLXD literal 0 HcmV?d00001 diff --git a/target/classes/com/mycmd/commands/MkdirCommand.class b/target/classes/com/mycmd/commands/MkdirCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..3227c71c8c3a6ed15d87513e3b29bb5039c91c38 GIT binary patch literal 1343 zcmZ`(+fEZv6kUfFr<7^ca`6JyK|$LBt@jH>yc9_^cuA@x>Vp}kCuOiRLuRH5pQ1nD ztM~wkCcc{ZO~$y+w3H(C<(xVD?6vmZ>+C(h{(SoZ;0~6O=tE3HTt`2S2pn5C-DEinR@bE!3LKfYT{~P5h~@Gt14v*%LsG{e^aJkItss;Ry}TwtBg+wy?UkPUwi{MM zUz$!ifwVyOWnk9joZ-By*}gH)g<(8@>#b`#av_OhIIbb1V+g|nLp^8&v<*eta2Y4p z3KV6`D7ITK=T|h03g~;#CA%S$IEhmlPU{%MxWK68IVESya%!dOnrt*Go*T+d=AEj` zu+sE>>4uB8&jNG#P9=(`oWuyuD6!58oNotbmC;?VRFwaOj&nFqCFQ0agh8a_>jb6* zPBBQUdc$l`qS}_x@+m6ZMIE^a7fBT)P!P!MBP;?!St}+mBQUmPGQFA+dPd7`bcCft zQDCwXxd(>lO2hLF$MdD($`2hsTLwi9mjur4i^DI+bZbHBiF&L`>!jg|!0~;jwpk!v z@oG}w=(6p~r%h*7`Y+7Y1}&Lo&oUb;rf;ir+ZYemY-%yFywAk1!{N$&Z@DS0W=N)D z?#*G9yBNA(la0WfOux=3Lp@;Rwf5fq)l-aRol+T{$^WMKLB zMreEN%i+Dg>26Gc{-)}Efn?Qd`j%8(Ln*t(Evl}?1WKGsfy*4yICst_*Q-30xC`$6 zg6qc2q%!@w54$xSx(y| z#+h`M*_^?B7(*ncOOIGbk4g_{>R)J~Cv-6i@bE9QZ81my literal 0 HcmV?d00001 diff --git a/target/classes/com/mycmd/commands/MoveCommand.class b/target/classes/com/mycmd/commands/MoveCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..57554fbc3361048dbf78251dfb4515b1d04cf92c GIT binary patch literal 2495 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 I58q+oUqKU)SO5S3 literal 0 HcmV?d00001 diff --git a/target/classes/com/mycmd/commands/TouchCommand.class b/target/classes/com/mycmd/commands/TouchCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..44dfbcc94865929b212e6d56451093b6bd480cd3 GIT binary patch literal 1996 zcmaJ>TT|Oc7(ELHIgY^Lnvk|2%FPY|HzZA4OlX4x4b)s(6KIlN5b^>Fw&ao43H+1x zwJ&`weIOk=lONEZ)M-0Ck_?#QbTqTO+Wju)obTKHvfa#@ zXFIB(JZYA*akL9uf8v|Fa@tUC)!H*=cI=XL%(9$K;2JtKbn56rw?J2e00LSi2v>5L zAr++vu`<5x>}Jy&8hQovQ`ZH?PT&UmG~Cqj4&D{$wcK*1d}x)6nZlkdm2$45wSfFrs4=W7MQ*bZyG{aka8JjF zxG#{PT+7lAN-5BNs#Se4I@wtxaeN~1Fc-4-4byPsD?^qm>d@Gs5Qgg+)k=}d@XRsf zf$b~SF+3ad4MhUfpFCAB9(<%Cy^`MDz(VvC~0r|7~*0xD4=N5@FnYSIe zQY~*wZ{6Gu%Fvm2Ewi*?dUo(%+l;BbK(WF6c_gkbrz0Xw9!RUI7-=%~{Blw1BGmU9 z+mx6B{sQe6drUxZ^ZfGEiO+N~)7vGot_G=y#X9Ze8*j_YJ}fBH+Fv#+HLh2S(ziT2 ztgb*yH7aMK;8s0LMy=XWFY#n>vv@b=Tvz$ZGb_td?YTuij&CvN&3Ti*WIsHvJDD!DMRGAeprzW%89-fgB!j44nUFpcv<^@i(!bp#KW3v+Wqkqu8end-L?*gW5sY3U}yq_XHn>TSv^7L>{Yr zU7ACDQ$z*y5$8>`^Vv?KpWgsRVBkK6h;EqnDSC`z4P*Eo>5$7kBJSt=Hjf2HTBG0R zc+3?!)c6IfMJ$D!x9|m{G+~+N9cW4Zg;5PXf1+nj!<{5eR+uc3VuEuZS##&dzi_Ho yaiUJe<}(#n8@RUp*Y$1#*8p~q;7fePxtrjhGIJpupM>Kk=>iGvZebfm^!*FL!R>qi literal 0 HcmV?d00001 diff --git a/target/classes/com/mycmd/commands/TreeCommand.class b/target/classes/com/mycmd/commands/TreeCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..b01f19c9d3cdefbefa5c3becd5ca0d76e703a198 GIT binary patch literal 2546 zcma)8OH&kA6#g#r=w@s{2T?I-M#acOX4FKYphg{ok0263jTmE^nG4f0(>>|#QOK(j zD*IHWSj1Eoscfk1Viu&zh084RGyE4xQ8C}`9-wtF6_~kwU+0|feCN^g=RZ%L0yvE? zQ)og=L)<_DNrA2R%?D<#Y}&KAYt#2-!52uLvTVygBM|H9y_tfJW(_F=TVM$6C^(f| zWuZ_h<|azAT+TbTFXt)LGAsRj&2^>iU$9*2?dcs2R9jAN#45|-6k5@yVXJ{{NDCOz zLxJY9<@xHKC$O!j_s)y5&Df3(4Lc0%#I6@GPb_%8tPrYGBZ!W5v2oY3{R!WdW@T8% zZh^KjCo`k;XJ(w5UCgG?g*_Vf8h9NUf%Y{x5kUd1s??NiYVHYD2Sib?WzP;Pa$2$9 zzyWmA00}rZ?K$O|FUL*4B(Qyrf~b&=Hw2JE4|+B98R*AhfxR27a#k_zqL-U=rOby5 zfz|*BiDiHscR}D_&r1|F!kbd~x{y^KCKb{n29DyGfNpu0tYT5pEk<}s$6E}?v!$hH zOJ9W_9fQHnkLx>1{Dgs%%2ADuj+qsiWD*OnQ>+^Ca=`Pl-2Q`K>CJf z&dQ+-lTl{wRGAugHC$zyZv=fk&hflcl+2}3%a&uc%CvMR&FM0C(xVRT-!xrIt?Qd{ zzhsf(%;<(D&KlBZm@$*{vcSX?$gU+$l-Y=aXjL=ANv!G4(nxzf-=bpFTUe|AU9Zw1 zkO=CIUcHpEY#I~3S(v+ORs)ALOtBHz^5M8EXRLYU^hR^4*PMWuVL5~cYpsPK%cjTr z7gQiDei^l7wXP*;d80hlz>EnDp&%k38&^3r0PhNiqv9O zLE_eV$MG3=vwBtfC8y}=a9B=42pyjYGzrm`gqMPknuZ4|4Ic`0Z@6RG51cuf3qgd1 zGh)_j`}=6N)-Q%uF0nJPg>{cQ&RnfJ+(=Jk=LNyZg{s`-dNihC_aBZHL0v_ji9cca zl6hoYwr%O=$+jmw4WF_RHTbj{R1KfA%l-FNhAi|8``8_uSiYm|FbO{SqT)ElRgO=# zPbB(&hj`3M6RvSo$G|R(b2P#Wcpulf5}3dwMfq z4v_SP*6K)T7dLP-KsSh6_<-1TWN{l))O&{-o6)q2Z5lq*dBpcZ2wQwdHOk;(KjHQh zZv1gPS9kb8Wl3u2;_5kB zZ8+oaA$7*jy;ohKxH|s}?SBV3X)(xQS`F~2(8bc1e&r*YktZS<8C%cD`P^)Jx*FGAU0cmMzZ literal 0 HcmV?d00001 diff --git a/target/classes/com/mycmd/commands/TypeCommand.class b/target/classes/com/mycmd/commands/TypeCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..1c53abe362b3f259cd9b9384f1a35f41a2214af0 GIT binary patch literal 2328 zcmaJ@U31e$6g?Z;kuk~#fj~_85D*|H5Vt^S>j0%O;iFA};t(2WOBHz?i^!5I$q>(U z`reoF+V&6Rwe%s(zzlusL;p*EKxdfJvyz<{>~@mTuJ+!0_U<|NuKede&tC$#fMy1L zNN7mvNTFX~_@Vj8%sZyLlE1n9P+Flt|9RWB!;1omiQM8gq_IsyM#pyOZ@8D5K`3kV z@)`^por{2MFMrFo-LMq;(yUFVF(|O-PGGLcf)O_B(l}qS9r?gDYw}_S!`Pu=M8{6- z64==TKtQW2ILGA<6Y&;NuEe+9mFe7~hTQ^sJM;>{GZ;fw!(JWlV4uKl%d6#UO{-SU zm#Wfnik=(FHD)}pBEw?C_oW+NwtXILBDZ-4g)^POC=Mu^4hkG;ZO-#WwqB_y|3f+s z;|MvFYjzL@5r_Ab;i!&dk--iWKpGPQLuzKYUT9RjhFhM}aDw@^&oa}fRHQGU)pPWhFrY7j#_2$E4XTmrIR$-IqZi%K~Ga zGHymhN`BHtBg@xs&aPRq9@?Ip!6g)RTvkbDDB3)cSWqLZ=PNp{;u=e=X0A#qYnkC) zJFIdRgr=+bKi0WjyK1`COXE|4qnGWV?wHNM2&>YtRG|>V@G6FBsG2bL6J$>=RC`F z7ERw)@2$mTShaaRV{QwHv##B!kS5op)d&eRHF3ZD=p6u^4MIhjk`vX#NOzP#-!hwK zEVfXvH_MgV3U0V{D|F~dThjDbnEcKj=`i1jdDWt0|CJjNlokSmoBOMlAo4&dG_BQn zvmVi;;eo*RvJ5QWj%tae+fc>BN-B8`-;yefz2BkFlxi|A&3IlIguYpymtoZ_2WdDw z(5&x!zM)!$_fJ$11w#z=gH`IGuHjo%ktAk3YSpMMZ1<73D)Vvi#YK9>v_j8s3jEYr zo-N0CziX@;M+W0_p10blPj@TOvGPWsI!X`sPO9UZe!6wvbtYLf9j9c6ib?&t>q@`q znC#m?LxcU%b*5gaYIw{Z_22=n|P3EX5iCpq$?#OLRH%X1VQQzxE5JmsVh zxA|0NU^hy9>ahbBaEEUKi@3`tgT)U7(zy0y^5rkke}gtMuz{hcFEF}vaszuN6Q`eH z|BX`{Fn&gc!+6WoQq|_DUM3M#K`quIdm#I)uCu&Q_++`K5PcIM3j|F9A;$PMF@8W|SUsa&uskTyRAF)PG%O=bYIla39jNfH)Pq)e z@CW##EPEG9h`~#D&+L1z-}Lsc-#>l=c!855){ya#Eg^?>hOKik5q>E2z<=L6mw{tg zf3CE0FBvkmdbfZ)3Lc6jY@l=r-kHWuMuakBB30X|kTU+6RoZo&l_F~9ah*P$PFtt1 z_#0}(J3|?UeDbXEw1_QidnlJs!45-Z1)aegC1Rl_k=m?5>Xg)#9yIISJa!q5TV^!n zMoVrikBpW4lL}?bo#8?oHP?QSZOn0J z{s4cJWzRwhG3%vY+x_)7-Mznl|M&^uIi6Ipf`WyjjS^NFHqZD6?gl*a-Pgl2;c14| zXEKud1w*0P8dOk5#X{A_8te<{{b`~_NLg`8MU7qtBxCnP$w>FL5~6}t@eoSqEU#4rdV zB9(_aDB~J6d?}Mjz^93$$HFn>ocMiad#O?)(oV*@j2jH=ZxZf{r_RT5%tL8mpTY6s z&<&?vIC9Afc{EDgx7p|J%(dV!Y%Q|pVTNKi9tnnxo{YqC8V-dz<->p?wO;J;V8E3$ z{ybRJW0^1<_7+HF<@D>&yT!TiQcY0p=DW+YTY~71MG$o3NQ-mbX$^=JS3b3==adny zH_K$${T~Lcb0iW^$%&RR4Su_svpj}UY6i(r?Z>I|#4DM-`@-DXW~Dg5O*&JCTXeHU z(sZgM56E*#Gt#A_Z(yIvSivDl^BJh&Hc5MyfIGNL9<3VpNt)tgbNeRa3#{7ucWit` zeSu;A44^@WzLViNv)nn3!EK_IVcR&ugN)!qJep%0Z8#Kad!I-x)7o32RrpJ*ol|=K N-_rfuQa5Yx_zw-_*r5Ob literal 0 HcmV?d00001 From ec7d5574e6acaf995bbca0b2f38f1ab03277928c Mon Sep 17 00:00:00 2001 From: PEDRO LUCAS Date: Fri, 17 Oct 2025 20:20:07 -0300 Subject: [PATCH 2/3] fix(core): Stabilize build by implementing required command interface methods This commit resolves a massive, project-wide build failure caused by an incomplete interface. The original task was to implement command suggestions in , but this revealed systemic issues. The interface was missing key methods for error handling and self-documentation ( and ), which were required by the and the new suggestion logic. This commit performs the following critical fixes: 1. **Updates the interface:** * Added to the method signature. This allows all file-system commands (like , , ) to handle errors correctly. * Added the abstract methods and to the interface contract. 2. **Implements Interface Methods:** * Iterated through *all* command classes (, , , , , , , , etc.) and implemented the required and methods. 3. **Fixes Dependency Errors:** * Added the dependency to . This provides the needed for the command suggestion feature in . * Added the missing helper method to , which was causing compilation errors in multiple commands. 4. **Cleans up :** * Refactored the 'command not found' logic to correctly display *either* the standard error *or* the 'Did you mean?' suggestion, not both. The project now compiles successfully, the is fully functional, and the foundation is stable for future development. --- .idea/.gitignore | 5 + .idea/compiler.xml | 13 ++ .idea/jarRepositories.xml | 20 ++ .idea/material_theme_project_new.xml | 12 + .idea/misc.xml | 326 +++++++++++++++++++++++++++ .idea/vcs.xml | 6 + 6 files changed, 382 insertions(+) create mode 100644 .idea/.gitignore create mode 100644 .idea/compiler.xml create mode 100644 .idea/jarRepositories.xml create mode 100644 .idea/material_theme_project_new.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/vcs.xml diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..a0ccf77 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,5 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Environment-dependent path to Maven home directory +/mavenHomeManager.xml diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..25c2223 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 0000000..712ab9d --- /dev/null +++ b/.idea/jarRepositories.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/material_theme_project_new.xml b/.idea/material_theme_project_new.xml new file mode 100644 index 0000000..a011c41 --- /dev/null +++ b/.idea/material_theme_project_new.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..fe7c608 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,326 @@ + + + + + + + + + + + + Abstraction issuesJava + + + AccessibilityHTML + + + AnnotationsGroovy + + + Assignment issuesGroovy + + + Assignment issuesJava + + + Best practisesGradle + + + Bitwise operation issuesJava + + + Class metricsJava + + + Class structureJava + + + ClassNaming conventionsJava + + + Cloning issuesJava + + + Code maturityJava + + + Code metrics + + + Code migrationKotlin + + + Code style issuesJava + + + Compiler issuesJava + + + Concurrency annotation issuesJava + + + Control flow issuesGroovy + + + Control flow issuesJava + + + Data flowJava + + + Declaration redundancyGroovy + + + Declaration redundancyJava + + + Dependency issuesJava + + + EditorConfig + + + EmbeddedPerformanceJava + + + EncapsulationJava + + + Error handlingJava + + + General + + + Gradle + + + Gradle Declarative + + + Groovy + + + HTML + + + ImportsJava + + + Inheritance issuesJava + + + InitializationJava + + + Internationalization + + + InternationalizationJava + + + JSON and JSON5 + + + JUnit + + + JVM languages + + + Java + + + Java 10Java language level migration aidsJava + + + Java 11Java language level migration aidsJava + + + Java 14Java language level migration aidsJava + + + Java 15Java language level migration aidsJava + + + Java 16Java language level migration aidsJava + + + Java 21Java language level migration aidsJava + + + Java 23Java language level migration aidsJava + + + Java 5Java language level migration aidsJava + + + Java 7Java language level migration aidsJava + + + Java 8Java language level migration aidsJava + + + Java 9Java language level migration aidsJava + + + Java interop issuesKotlin + + + Java language level issuesJava + + + Java language level migration aidsJava + + + JavaBeans issuesJava + + + JavadocJava + + + Kotlin + + + Language injection + + + LoggingJVM languages + + + LoggingJava + + + Markdown + + + Maven + + + MemoryJava + + + Method metricsJava + + + MethodNaming conventionsJava + + + Modularization issuesJava + + + Naming conventionsGroovy + + + Naming conventionsJava + + + Naming conventionsKotlin + + + Nullability problemsProbable bugsJava + + + Numeric issuesJava + + + Other problemsKotlin + + + Packaging issuesJava + + + PerformanceJava + + + PortabilityJava + + + Potentially confusing code constructsGroovy + + + Probable bugsGradle + + + Probable bugsGroovy + + + Probable bugsJava + + + Probable bugsKotlin + + + Proofreading + + + Properties files + + + RELAX NG + + + Redundant constructsKotlin + + + Reflective accessJava + + + RegExp + + + Security + + + SecurityJava + + + Serialization issuesJava + + + Style issuesKotlin + + + StyleGroovy + + + Test frameworksJVM languages + + + TestNGJava + + + Threading issuesGroovy + + + Threading issuesJava + + + User defined + + + Validity issuesGroovy + + + Verbose or redundant code constructsJava + + + VisibilityJava + + + XML + + + toString() issuesJava + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file From 115843dcbf1e9815c0b01d440c8f910b34dad44d Mon Sep 17 00:00:00 2001 From: PEDRO LUCAS Date: Fri, 17 Oct 2025 20:25:57 -0300 Subject: [PATCH 3/3] fix: reviewing comments and found an error --- src/main/java/com/mycmd/commands/VersionCommand.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/mycmd/commands/VersionCommand.java b/src/main/java/com/mycmd/commands/VersionCommand.java index d1567e9..266ea17 100644 --- a/src/main/java/com/mycmd/commands/VersionCommand.java +++ b/src/main/java/com/mycmd/commands/VersionCommand.java @@ -22,13 +22,13 @@ public void execute(String[] args, ShellContext context) { } @Override public String description() { - // Retirado dos comentários do seu próprio código + return "Copy one or more files to another location."; } @Override public String usage() { - // Retirado dos comentários do seu próprio código + return "ver"; } }