From 0d29b03dcedfa060980a90e20b7559f20b31700f Mon Sep 17 00:00:00 2001 From: Adrian Malacoda Date: Sun, 13 Dec 2020 04:18:51 -0600 Subject: [PATCH 1/4] remove unused imports --- desktop/src/main/java/net/monarchpass/piecannon/App.java | 4 ---- 1 file changed, 4 deletions(-) diff --git a/desktop/src/main/java/net/monarchpass/piecannon/App.java b/desktop/src/main/java/net/monarchpass/piecannon/App.java index aaa0c00..3c5a15f 100644 --- a/desktop/src/main/java/net/monarchpass/piecannon/App.java +++ b/desktop/src/main/java/net/monarchpass/piecannon/App.java @@ -4,15 +4,11 @@ import java.net.URI; import java.io.File; import java.util.List; -import java.util.ArrayList; - import org.freedesktop.BaseDirectory; import lombok.extern.java.Log; import java.util.logging.Level; -import net.monarchpass.piecannon.util.ServerFactory; - @Log public class App { public static void main (final String... args) throws Exception { From 77cf4f58203829b941e914d5c7461b1da3df9573 Mon Sep 17 00:00:00 2001 From: Adrian Malacoda Date: Thu, 5 Nov 2020 03:56:08 -0600 Subject: [PATCH 2/4] desktop/piecannon: capture output of mvn command so we can display it to the user, capture error code so we can pass it upstream (cherry picked from commit 2f7761bac7fddf857bb31b6db94147e0496153dd) --- desktop/piecannon | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/desktop/piecannon b/desktop/piecannon index 6650dbd..00989be 100755 --- a/desktop/piecannon +++ b/desktop/piecannon @@ -8,5 +8,13 @@ STUB_POM=" { public Server apply (final JsonObject object) { - return makeSftpServer(object); + final String type = object.getAsJsonPrimitive("type").getAsString(); + if (type.equalsIgnoreCase("ftp")) { + return makeFtpServer(object); + } else if (type.equalsIgnoreCase("sftp")) { + return makeSftpServer(object); + } + + throw new IllegalArgumentException("Invalid server type: " + type); } private Server makeSftpServer (final JsonObject object) { @@ -27,4 +35,19 @@ public class ServerFactory implements Function { path, URI.create(url) ); } + + private Server makeFtpServer (final JsonObject object) { + final String host = object.getAsJsonPrimitive("host").getAsString(); + final String label = object.has("label") ? object.getAsJsonPrimitive("label").getAsString() : host; + final int port = object.has("port") ? object.getAsJsonPrimitive("port").getAsInt() : 21; + final String username = object.getAsJsonPrimitive("username").getAsString(); + final String password = object.getAsJsonPrimitive("password").getAsString(); + final String path = object.getAsJsonPrimitive("path").getAsString(); + final String url = object.getAsJsonPrimitive("url").getAsString(); + + return new FtpServer( + label, host, port, username, password, + path, URI.create(url) + ); + } } diff --git a/servers.example.json b/servers.example.json index 2579c1b..c4d4a1b 100644 --- a/servers.example.json +++ b/servers.example.json @@ -1,4 +1,5 @@ [{ + "type": "ftp", "host": "example.com", "username": "username", "password": "password", From 0ffe4627107b1612c5eeb5811835d865e257f990 Mon Sep 17 00:00:00 2001 From: Adrian Malacoda Date: Sun, 13 Dec 2020 07:32:54 -0600 Subject: [PATCH 4/4] desktop: add --test command to test all defined servers --- .../java/net/monarchpass/piecannon/App.java | 25 +++++++++++++++---- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/desktop/src/main/java/net/monarchpass/piecannon/App.java b/desktop/src/main/java/net/monarchpass/piecannon/App.java index 3c5a15f..42743ed 100644 --- a/desktop/src/main/java/net/monarchpass/piecannon/App.java +++ b/desktop/src/main/java/net/monarchpass/piecannon/App.java @@ -23,16 +23,22 @@ public class App { log.log(Level.SEVERE, "No servers defined, please define at least one in {0}", serversJson); System.exit(1); } - - final Server server = cannon.selectServer(); - log.log(Level.INFO, "Randomly selected server: {0}", server.getLabel()); - + if (args.length == 0) { log.log(Level.SEVERE, "No filename provided"); System.exit(1); } - final File source = new File(args[0]); + final Server server = cannon.selectServer(); + log.log(Level.INFO, "Randomly selected server: {0}", server.getLabel()); + + final String arg = args[0]; + if (arg.equals("--test")) { + testServers(servers); + return; + } + + final File source = new File(arg); if (!source.exists()) { log.log(Level.SEVERE, "No such file: {0}", source); System.exit(1); @@ -42,6 +48,15 @@ public class App { System.out.println(result); } + public static void testServers (final List servers) { + log.log(Level.INFO, "Testing all defined servers"); + for (final Server server : servers) { + log.log(Level.INFO, "{0} {1}: {2}", new Object[] { + server.getClass().getSimpleName(), server.getLabel(), PieCannon.testServer(server) + }); + } + } + public static File getServersJson () { return new File(getDataDirectory(), "servers.json"); }