|
| 1 | +# JTerm Documentation v0.7.0 |
| 2 | + |
| 3 | +## Table of Contents |
| 4 | +``` |
| 5 | +I. Table of Contents |
| 6 | +II. Overview |
| 7 | +III. Build Targets |
| 8 | +IV. Changelog |
| 9 | +V. New Features |
| 10 | + A. GUI |
| 11 | + B. Commands |
| 12 | +VI. Active Command List |
| 13 | +``` |
| 14 | + |
| 15 | +## Overview |
| 16 | +This document provides information on changes included in release version "0.7.0". The JTerm project is close to its official release, but the project has had enough changes to include it as a new pre-release version. The Changelog section records changes made from the previous patch (0.6.1). This document was written by @Sergix and reviewed by @NCSGeek. |
| 17 | + |
| 18 | +## Build Targets |
| 19 | +``` |
| 20 | +[VERSION] [FILE] [STATE] |
| 21 | +0.1.0 jterm-v0.1.0.jar OK |
| 22 | +0.2.0 jterm-v0.2.0.jar OK |
| 23 | +0.2.1 jterm-v0.2.1.jar OK |
| 24 | +0.3.0 jterm-v0.3.0.jar DEPRECATED |
| 25 | +0.3.1 jterm-v0.3.1.jar OK |
| 26 | +0.4.0 jterm-v0.4.0.jar OK |
| 27 | +0.4.1 jterm-v0.4.1.jar OK |
| 28 | +0.5.0 jterm-v0.5.0.jar OK |
| 29 | +0.5.1 jterm-v0.5.1.jar OK |
| 30 | +0.6.0 jterm-v0.6.0.jar OK |
| 31 | +0.6.1 jterm-v0.6.1.jar DEPRECATED |
| 32 | +0.7.0 jterm-v0.7.0.jar OK |
| 33 | +``` |
| 34 | + |
| 35 | +## Changelog |
| 36 | +- `cd ..` no longer adds the `.`'s to current directory |
| 37 | +- Added `rm` command to delete files/directories |
| 38 | +- Added `commons.io` dependency to POM |
| 39 | +- Program starts with prompt instead of `./` |
| 40 | +- Fixed some formatting in `JTerm.java` |
| 41 | +- Added `setOS()` function to `Util.java` |
| 42 | + - Replaces code previously used to determine OS in `JTerm.java` |
| 43 | +- Re-added the build process batch files to the root directory |
| 44 | +- Removed `*.bat` from `.gitignore` |
| 45 | +- Removed `lang3` dependency from POM and all imports |
| 46 | +- Fixed issue where `InputHandler` was outputting an extra newline |
| 47 | +- Fixed issue where autocomplete was attempting a non existent directory and outputting `NullPointerException` |
| 48 | +- Added `Command` interface with `execute()` method (@ojles) |
| 49 | +- Added `CommandException` for package `jterm.command.*` (@ojles) |
| 50 | +- Implemented `Command` interface in all command classes (@ojles) |
| 51 | +- Added dynamic loading of command instances using reflection, saving them in a `Map<String, Command>` (@ojles) |
| 52 | +- Moved helper methods from `JTerm.java` to `Util.java` (@ojles) |
| 53 | +- Fixed ping command (@ojles) |
| 54 | +- Fixed `Exec.java`, which was not printing all the data got from the executed process |
| 55 | +- Removed `org.reflections` POM import |
| 56 | +- Updated `ROADMAP.md` |
| 57 | +- Fixed issue with Echo cutting off extra character |
| 58 | +- Fixed v0.6.0 documentation table |
| 59 | +- v0.6.1 is now DEPRECATED |
| 60 | +- Output now routes through JTerm.out |
| 61 | +- Created "I/O", "GUI", "bug fix", "ROADMAP", "cleanup", and "command" Issue labels |
| 62 | +- `Help.java` now automates commands output |
| 63 | +- Added `JTerm.getCommands()` function |
| 64 | +- `JTerm.COMMANDS` is now public |
| 65 | +- Added a fully functioning JavaX GUI (@lbenedetto) |
| 66 | + - Runs commands without recreating anything |
| 67 | + - Added `ProtectedDocument` class |
| 68 | + - Added `ProtectedTextComponent` class |
| 69 | + - Added `Terminal` class (GUI) |
| 70 | + - Added `com.intellij.forms_rt` import to POM for `Terminal.form` GUI layout |
| 71 | +- New autocompltete classes (@nanoandrew4) |
| 72 | + - Added `KeyHandler` class |
| 73 | + - Added `Keys` enum |
| 74 | + - Added `FileAutocomplete` class |
| 75 | +- Added `Util` functions |
| 76 | + - `removeSpaces()` |
| 77 | + - `containsOnlySpaces()` |
| 78 | + - `getRunTime()` |
| 79 | + - `clearLine()` |
| 80 | + - `getAsArray()` |
| 81 | + - `getAsString()` |
| 82 | + - `getRest()` |
| 83 | + - `getFullPath()` |
| 84 | +- Added a command interface (@ojles) |
| 85 | + - Command methods now have a `@Command` annotation |
| 86 | + - All commands are automatically updated and stored in a global hashmap |
| 87 | + - Added `CommandException` class |
| 88 | +- Added `target/` to `.gitignore` |
| 89 | +- Created `Files.move()` |
| 90 | +- Simplified UNIX Arrow Key input |
| 91 | +- Moved UNIX and Windows input functions to `RawConsoleInput` class from `UnixInput` and `WinInput` classes |
| 92 | +- Added "regex" command (@lbenedetto) |
| 93 | + - Added `Regex.java` |
| 94 | +- Added basic unit tests |
| 95 | + - Created `src/test` directory |
| 96 | + - Added `UtilTest.java` |
| 97 | +- Added `org.junit.jupiter.junit-jupiter-api` dependency to the POM |
| 98 | +- Added `JTerm.setPrompt()` |
| 99 | +- `cd`/`chdir` command now changes input prompt |
| 100 | +- Major refactor of code to prepare for text color in headless mode |
| 101 | + - Moved `RawConsoleInput.java`, `InputHandler.java`, and `Keys.java` classes to own package `jterm.io.input` |
| 102 | +- Added `jterm.io.output` package |
| 103 | + - Added `CollectorPrinter.java` |
| 104 | + - Added `GUIPrinter.java` |
| 105 | + - Added `HeadlessPrinter.java` |
| 106 | + - Added `Printer.java` |
| 107 | + - Added `TextColor.java` |
| 108 | +- Added `InputHander.java` test to tests |
| 109 | +- Fixed autocomplete bugs |
| 110 | +- Fixed Windows-based bugs |
| 111 | +- Fixed GUI tab parser |
| 112 | +- Closed [#45](https://github.com/Sergix/JTerm/issues/45) |
| 113 | +- Closed [#49](https://github.com/Sergix/JTerm/issues/49) |
| 114 | +- Closed [#59](https://github.com/Sergix/JTerm/issues/59) |
| 115 | +- Closed [#60](https://github.com/Sergix/JTerm/issues/60) |
| 116 | +- Closed [#68](https://github.com/Sergix/JTerm/issues/68) |
| 117 | +- Closed [#40](https://github.com/Sergix/JTerm/issues/40) |
| 118 | +- Closed [#47](https://github.com/Sergix/JTerm/issues/47) (PR #78) |
| 119 | +- Closed [#48](https://github.com/Sergix/JTerm/issues/48) |
| 120 | +- Closed [#52](https://github.com/Sergix/JTerm/issues/52) (wontfix) |
| 121 | +- Closed [#53](https://github.com/Sergix/JTerm/issues/53) |
| 122 | +- Closed [#71](https://github.com/Sergix/JTerm/issues/71) (PR #74) |
| 123 | +- Closed [#73](https://github.com/Sergix/JTerm/issues/73) |
| 124 | +- Closed [#75](https://github.com/Sergix/JTerm/issues/75) |
| 125 | +- Closed PR [#77](https://github.com/Sergix/JTerm/pull/77) (PR #79) |
| 126 | +- Closed [#80](https://github.com/Sergix/JTerm/issues/80) |
| 127 | +- Closed [#81](https://github.com/Sergix/JTerm/issues/81) |
| 128 | +- Closed [#94](https://github.com/Sergix/JTerm/issues/94) |
| 129 | +- Closed PR [#82](https://github.com/Sergix/JTerm/pull/82) (PR #83) |
| 130 | +- Merged [#58](https://github.com/Sergix/JTerm/pull/58) (@ojles) |
| 131 | +- Merged [#61](https://github.com/Sergix/JTerm/pull/61) (@nanoandrew4) |
| 132 | +- Merged [#67](https://github.com/Sergix/JTerm/pull/67) (@ojles) |
| 133 | +- Merged [#74](https://github.com/Sergix/JTerm/pull/74) (@lbenedetto) |
| 134 | +- Merged [#78](https://github.com/Sergix/JTerm/pull/78) (@nanoandrew4) |
| 135 | +- Merged [#79](https://github.com/Sergix/JTerm/pull/79) (@ojles) |
| 136 | +- Merged [#83](https://github.com/Sergix/JTerm/pull/83) (@Kaperskyguru) |
| 137 | +- Merged [#85](https://github.com/Sergix/JTerm/pull/85) (@lbenedetto) |
| 138 | +- Merged [#86](https://github.com/Sergix/JTerm/pull/86) (@nanoandrew4) |
| 139 | +- Merged [#87](https://github.com/Sergix/JTerm/pull/87) (@lbenedetto) |
| 140 | +- Merged [#88](https://github.com/Sergix/JTerm/pull/88) (@lbenedetto) |
| 141 | +- Merged [#90](https://github.com/Sergix/JTerm/pull/90) (@nanoandrew4) |
| 142 | +- Merged [#91](https://github.com/Sergix/JTerm/pull/91) (@nanoandrew4) |
| 143 | +- Merged [#93](https://github.com/Sergix/JTerm/pull/93) (@lbenedetto) |
| 144 | +- Merged [#95](https://github.com/Sergix/JTerm/pull/95) (@lbenedetto) |
| 145 | +- Merged [#96](https://github.com/Sergix/JTerm/pull/96) (@DataSecs) |
| 146 | +- Merged [#97](https://github.com/Sergix/JTerm/pull/97) (@lbenedetto) |
| 147 | + |
| 148 | +## New Features |
| 149 | + |
| 150 | +### GUI |
| 151 | +A new GUI interface has been added by @lbenedetto! It can run on any graphical interface and replicates the looks of a terminal, and functions in almost perfect unison with its terminal alternative. The GUI runs by default; if you would like to run without it, just specifify by running JTerm with the `headless` option. |
| 152 | + |
| 153 | +### Commands |
| 154 | +The `download`, `rmdir`, `mv`/`move`, `rn`, and 'regex' commands have been added by @nanoandrew4, @lbenedetto, and @ojles. These command specifications have been listed in the "Active Command List" section. |
| 155 | + |
| 156 | +## Active Command List |
| 157 | +- `help [-h]` - displays information about JTerm |
| 158 | +- `exit [-h]` - Exits the JTerm application |
| 159 | +- `ls [-h] [-f]` - Dispays extensive directory information, including files and subdirectories (@pmorgan3) |
| 160 | + - `-f` - toggles minimal output |
| 161 | +- `cd`, `chdir` `[-h] directory` - Changes the directory to the location specified |
| 162 | +- `pwd [-h]` - prints the current working directory |
| 163 | +- `md [-h] name` - creates a new directory |
| 164 | +- `read [-h] file1 [file2 file3...]` - prints the contents of the specified files |
| 165 | +- `delete`, `del`, `rm` `[-h] file/directory` - deletes the specified file or directory (@pmorgan3) |
| 166 | +- `write [-h] filename` - Opens an input prompt that will write the data to the new file named `filename` |
| 167 | +- `echo [-h] input` - outputs the input on a new line |
| 168 | +- `window [-h] [-r] [-w width] [-l height] [-t title]` - creates a new GUI window |
| 169 | + - `-r` - toggles resizability |
| 170 | + - `-w` - specifies window width |
| 171 | + - `-l` - specifies window height |
| 172 | + - `-t` - sets the name of the window, displayed in the title bar |
| 173 | +- `ps [-h]` - Lists all processes running on the host system |
| 174 | +- `ping [-h] [-p] host` - enables ICMP pinging to Internet hosts |
| 175 | + - `-p` - specifies the port to connect with |
| 176 | +- `set [-h] name = value` - creates a new variable in the current session (previously in Exec) |
| 177 | +- `pause [-h] [message]` - pauses the interpreter until the user hits the "Enter" key |
| 178 | +- `date [-h]` - prints the system date to the console |
| 179 | +- `time [-h]` - prints the system time to the console |
| 180 | +- `clear [-h]` - clears the terminal |
| 181 | +- `rmdir [-h] [-r] directory` - removes the specified directory |
| 182 | + - `-r` - recursively deletes the directory and all its contents |
| 183 | +- `exec executable` - executes the specified JAR or native executable |
| 184 | +- `move, mv [-h] source destination` - moves the source file to the destination specified |
| 185 | +- `rn [-h] file newName` - renames the specified file to the new name specified |
| 186 | +- `download [-h] url` - downloads the file at the specified URL into the current working directory |
| 187 | +- `regex [-m] "expression" command [commandOptions ...]` |
| 188 | + - `-m` - "multiline mode"; the output from the command is treated a single string with newline characters |
| 189 | + |
| 190 | +> JTerm 0.7.0 |
| 191 | +> `jterm-v0.7.0.jar` |
| 192 | +> This project and its source are held under the GNU General Public License, located in the LICENSE file in the project's directory. |
| 193 | +> (c) 2017 |
0 commit comments