diff --git a/build.gradle b/build.gradle
index 6a0fd1d..ccc52cb 100644
--- a/build.gradle
+++ b/build.gradle
@@ -56,7 +56,7 @@ configure(subprojects - project(':android')) {
}
subprojects {
- version = '1.0.0'
+ version = '0.0.0-SNAPSHOT'
ext.appName = 'open-eggbert'
repositories {
mavenCentral()
diff --git a/core/build.gradle b/core/build.gradle
index 26d2eec..9794de2 100644
--- a/core/build.gradle
+++ b/core/build.gradle
@@ -17,6 +17,7 @@ dependencies {
api "com.github.tommyettinger:libgdx-utils:$utilsVersion"
api "de.golfgl.gdxcontrollerutils:gdx-controllerutils-mapping:$controllerMappingVersion"
api "games.rednblack.miniaudio:miniaudio:$miniaudioVersion"
+ api "com.openeggbert.gdx:gdx-storage:0.0.0-SNAPSHOT"
annotationProcessor "org.projectlombok:lombok:$lombokVersion"
compileOnly "org.projectlombok:lombok:$lombokVersion"
testImplementation "org.junit.jupiter:junit-jupiter-api:5.10.3"
@@ -26,4 +27,4 @@ dependencies {
test {
useJUnitPlatform {
}
-}
\ No newline at end of file
+}
diff --git a/lwjgl3/src/main/java/com/openeggbert/lwjgl3/debugging/storage/BaseCommandLine.java b/core/src/main/java/com/openeggbert/storage/filesystem/command/BaseCommandLine.java
similarity index 97%
rename from lwjgl3/src/main/java/com/openeggbert/lwjgl3/debugging/storage/BaseCommandLine.java
rename to core/src/main/java/com/openeggbert/storage/filesystem/command/BaseCommandLine.java
index 5f7222e..a133201 100644
--- a/lwjgl3/src/main/java/com/openeggbert/lwjgl3/debugging/storage/BaseCommandLine.java
+++ b/core/src/main/java/com/openeggbert/storage/filesystem/command/BaseCommandLine.java
@@ -17,7 +17,7 @@
// or write to the Free Software
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
///////////////////////////////////////////////////////////////////////////////////////////////
-package com.openeggbert.lwjgl3.debugging.storage;
+package com.openeggbert.storage.filesystem.command;
import java.util.function.Function;
diff --git a/core/src/main/java/com/openeggbert/storage/filesystem/command/CommandLineScanner.java b/core/src/main/java/com/openeggbert/storage/filesystem/command/CommandLineScanner.java
new file mode 100644
index 0000000..13b75c5
--- /dev/null
+++ b/core/src/main/java/com/openeggbert/storage/filesystem/command/CommandLineScanner.java
@@ -0,0 +1,29 @@
+///////////////////////////////////////////////////////////////////////////////////////////////
+// Open Eggbert: Free recreation of the computer game Speedy Eggbert.
+// Copyright (C) 2024 the original author or authors.
+//
+// This program is free software: you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation, either version 3
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
+// or write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+///////////////////////////////////////////////////////////////////////////////////////////////
+package com.openeggbert.storage.filesystem.command;
+
+/**
+ *
+ * @author robertvokac
+ */
+public interface CommandLineScanner {
+ String nextLine();
+
+}
diff --git a/lwjgl3/src/main/java/com/openeggbert/lwjgl3/debugging/storage/StorageCommand.java b/core/src/main/java/com/openeggbert/storage/filesystem/command/StorageCommand.java
similarity index 96%
rename from lwjgl3/src/main/java/com/openeggbert/lwjgl3/debugging/storage/StorageCommand.java
rename to core/src/main/java/com/openeggbert/storage/filesystem/command/StorageCommand.java
index b955364..afaa84e 100644
--- a/lwjgl3/src/main/java/com/openeggbert/lwjgl3/debugging/storage/StorageCommand.java
+++ b/core/src/main/java/com/openeggbert/storage/filesystem/command/StorageCommand.java
@@ -17,7 +17,7 @@
// or write to the Free Software
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
///////////////////////////////////////////////////////////////////////////////////////////////
-package com.openeggbert.lwjgl3.debugging.storage;
+package com.openeggbert.storage.filesystem.command;
/**
*
diff --git a/lwjgl3/src/main/java/com/openeggbert/lwjgl3/debugging/storage/StorageCommandLine.java b/core/src/main/java/com/openeggbert/storage/filesystem/command/StorageCommandLine.java
similarity index 92%
rename from lwjgl3/src/main/java/com/openeggbert/lwjgl3/debugging/storage/StorageCommandLine.java
rename to core/src/main/java/com/openeggbert/storage/filesystem/command/StorageCommandLine.java
index f94e8d0..fc4b6c0 100644
--- a/lwjgl3/src/main/java/com/openeggbert/lwjgl3/debugging/storage/StorageCommandLine.java
+++ b/core/src/main/java/com/openeggbert/storage/filesystem/command/StorageCommandLine.java
@@ -17,13 +17,12 @@
// or write to the Free Software
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
///////////////////////////////////////////////////////////////////////////////////////////////
-package com.openeggbert.lwjgl3.debugging.storage;
+package com.openeggbert.storage.filesystem.command;
import com.openeggbert.storage.Storage;
-import java.time.LocalDateTime;
import java.util.Arrays;
+import java.util.Date;
import java.util.HashMap;
-import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.function.Consumer;
@@ -49,11 +48,14 @@ public class StorageCommandLine {
}
private String extractArgument(String arguments, int argumentIndex) {
+ if(arguments.isEmpty()) {
+ return arguments;
+ }
String[] array = arguments.split(" ");
- if (argumentIndex > (array.length - 1)) {
+ if (argumentIndex > (array.length)) {
return "";
}
- return array[argumentIndex];
+ return array[argumentIndex + 1];
}
public StorageCommandLine(String userIn, String hostnameIn, Storage storageIn) {
@@ -62,21 +64,23 @@ public class StorageCommandLine {
this.hostname = hostnameIn;
this.storage = storageIn;
+ addCommand("date", arguments -> provideOutput(result -> result.setOutput(new Date().toString())));
addCommand("whoami", arguments -> provideOutput(result -> result.setOutput(user)));
addCommand("uptime", arguments -> provideOutput(result
-> result.setOutput(
- LocalDateTime.now().toString().replace("T", " ").substring(10, 19) + " up "
+ new Date().toString().substring(11, 19) + " up "
+ (System.nanoTime() - startNanoTime) / 1000000000l / 60l
+ " minutes"
+ ", 1 user"
)));
addCommand("hostname", arguments -> provideOutput(result -> result.setOutput(hostname)));
+ addCommand("test", arguments-> provideOutput(result-> result.setOutput((extractArgument(arguments, 0)))));
addCommand("uname", arguments -> provideOutput(result -> result.setOutput(
"LinuxBashCommandLinePartialEmulation"
+ ((extractArgument(arguments, 0).equals("-a"))
? (hostname + " 0.0.0 ("
- + LocalDateTime.now().toString().replace("T", " ").substring(0, 10) + ")")
+ + new Date().toString() + ")")
: "")
)));
diff --git a/lwjgl3/src/main/java/com/openeggbert/lwjgl3/debugging/storage/StorageCommandLineScanner.java b/core/src/main/java/com/openeggbert/storage/filesystem/command/StorageCommandLineScanner.java
similarity index 79%
rename from lwjgl3/src/main/java/com/openeggbert/lwjgl3/debugging/storage/StorageCommandLineScanner.java
rename to core/src/main/java/com/openeggbert/storage/filesystem/command/StorageCommandLineScanner.java
index de93c51..422b273 100644
--- a/lwjgl3/src/main/java/com/openeggbert/lwjgl3/debugging/storage/StorageCommandLineScanner.java
+++ b/core/src/main/java/com/openeggbert/storage/filesystem/command/StorageCommandLineScanner.java
@@ -17,7 +17,7 @@
// or write to the Free Software
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
///////////////////////////////////////////////////////////////////////////////////////////////
-package com.openeggbert.lwjgl3.debugging.storage;
+package com.openeggbert.storage.filesystem.command;
import com.openeggbert.storage.map.MemoryStorage;
import java.util.Scanner;
@@ -28,17 +28,7 @@ import java.util.Scanner;
*/
public class StorageCommandLineScanner {
- private StorageCommandLineScanner() {
- //Not meant to be instantiated.
- }
-
- public static void main(String[] args) {
- MemoryStorage memoryStorage = new MemoryStorage();
- final String user = "player";
- final String hostname = "openegggbert";
-
- StorageCommandLine storageCommandLine = new StorageCommandLine(user, hostname, memoryStorage);
- Scanner scanner = new Scanner(System.in);
+ public StorageCommandLineScanner(StorageCommandLine storageCommandLine, CommandLineScanner scanner) {
while (true) {
System.out.print(storageCommandLine.getCommandLineStart());
diff --git a/lwjgl3/src/main/java/com/openeggbert/lwjgl3/debugging/storage/StorageCommandResult.java b/core/src/main/java/com/openeggbert/storage/filesystem/command/StorageCommandResult.java
similarity index 97%
rename from lwjgl3/src/main/java/com/openeggbert/lwjgl3/debugging/storage/StorageCommandResult.java
rename to core/src/main/java/com/openeggbert/storage/filesystem/command/StorageCommandResult.java
index eb81a9a..829b41b 100644
--- a/lwjgl3/src/main/java/com/openeggbert/lwjgl3/debugging/storage/StorageCommandResult.java
+++ b/core/src/main/java/com/openeggbert/storage/filesystem/command/StorageCommandResult.java
@@ -17,7 +17,7 @@
// or write to the Free Software
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
///////////////////////////////////////////////////////////////////////////////////////////////
-package com.openeggbert.lwjgl3.debugging.storage;
+package com.openeggbert.storage.filesystem.command;
/**
*
diff --git a/core/src/main/java/com/openeggbert/storage/map/MapStorage.java b/core/src/main/java/com/openeggbert/storage/map/MapStorage.java
index adfe71a..92ebe81 100644
--- a/core/src/main/java/com/openeggbert/storage/map/MapStorage.java
+++ b/core/src/main/java/com/openeggbert/storage/map/MapStorage.java
@@ -65,7 +65,7 @@ public class MapStorage implements Storage {
@Override
public String cd(String path) {
- System.out.println("path="+path);
+// System.out.println("path="+path);
String absolutePath = path.equals(TWO_DOTS) ? getParentPath(workingDirectory) : convertToAbsolutePathIfNeeded(path);
if (!exists(absolutePath)) {
@@ -122,7 +122,7 @@ public class MapStorage implements Storage {
private static final String EIGHT_COLONS = "::::::::";
private static String getParentPath(String path) {
- System.out.println("getParentPath()");
+// System.out.println("getParentPath()");
if (path == null) {
throw new OpenEggbertException("Path is null");
}
diff --git a/lwjgl3/src/main/java/com/openeggbert/lwjgl3/debugging/storage/DesktopCommandLineScanner.java b/lwjgl3/src/main/java/com/openeggbert/lwjgl3/debugging/storage/DesktopCommandLineScanner.java
new file mode 100644
index 0000000..a213889
--- /dev/null
+++ b/lwjgl3/src/main/java/com/openeggbert/lwjgl3/debugging/storage/DesktopCommandLineScanner.java
@@ -0,0 +1,43 @@
+///////////////////////////////////////////////////////////////////////////////////////////////
+// Open Eggbert: Free recreation of the computer game Speedy Eggbert.
+// Copyright (C) 2024 the original author or authors.
+//
+// This program is free software: you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation, either version 3
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
+// or write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+///////////////////////////////////////////////////////////////////////////////////////////////
+package com.openeggbert.lwjgl3.debugging.storage;
+
+import com.openeggbert.storage.filesystem.command.CommandLineScanner;
+import java.util.Scanner;
+
+/**
+ *
+ * @author robertvokac
+ */
+public class DesktopCommandLineScanner implements CommandLineScanner {
+
+ private final Scanner scanner;
+
+ public DesktopCommandLineScanner() {
+ this.scanner = new Scanner(System.in);
+
+ }
+
+ @Override
+ public String nextLine() {
+ return scanner.nextLine();
+ }
+
+}
diff --git a/lwjgl3/src/main/java/com/openeggbert/lwjgl3/debugging/storage/DesktopStorageCommandLineScanner.java b/lwjgl3/src/main/java/com/openeggbert/lwjgl3/debugging/storage/DesktopStorageCommandLineScanner.java
new file mode 100644
index 0000000..311a543
--- /dev/null
+++ b/lwjgl3/src/main/java/com/openeggbert/lwjgl3/debugging/storage/DesktopStorageCommandLineScanner.java
@@ -0,0 +1,46 @@
+///////////////////////////////////////////////////////////////////////////////////////////////
+// Open Eggbert: Free recreation of the computer game Speedy Eggbert.
+// Copyright (C) 2024 the original author or authors.
+//
+// This program is free software: you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation, either version 3
+// of the License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see
+// or write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+///////////////////////////////////////////////////////////////////////////////////////////////
+package com.openeggbert.lwjgl3.debugging.storage;
+
+import com.openeggbert.storage.filesystem.command.StorageCommandLine;
+import com.openeggbert.storage.filesystem.command.StorageCommandLineScanner;
+import com.openeggbert.storage.map.MemoryStorage;
+
+/**
+ *
+ * @author robertvokac
+ */
+public class DesktopStorageCommandLineScanner {
+
+ private DesktopStorageCommandLineScanner() {
+ //Not meant to be instantiated.
+ }
+
+ public static void main(String[] args) {
+ MemoryStorage memoryStorage = new MemoryStorage();
+ final String user = "player";
+ final String hostname = "openegggbert";
+ StorageCommandLine storageCommandLine = new StorageCommandLine(user, hostname, memoryStorage);
+ StorageCommandLineScanner storageCommandLineScanner = new StorageCommandLineScanner(
+ storageCommandLine, new DesktopCommandLineScanner());
+
+ }
+
+}