From b9ab93355055bb1a07cf6d9b7b0f437c77f057dd Mon Sep 17 00:00:00 2001 From: zzz <zzz@mail.i2p> Date: Thu, 26 Nov 2015 18:31:17 +0000 Subject: [PATCH] client getopt --- .../src/net/i2p/sam/client/SAMStreamSend.java | 56 +++++++++++++++++-- .../src/net/i2p/sam/client/SAMStreamSink.java | 55 ++++++++++++++++-- 2 files changed, 102 insertions(+), 9 deletions(-) diff --git a/apps/sam/java/src/net/i2p/sam/client/SAMStreamSend.java b/apps/sam/java/src/net/i2p/sam/client/SAMStreamSend.java index c031ea8c69..881073d09f 100644 --- a/apps/sam/java/src/net/i2p/sam/client/SAMStreamSend.java +++ b/apps/sam/java/src/net/i2p/sam/client/SAMStreamSend.java @@ -9,6 +9,8 @@ import java.net.Socket; import java.util.HashMap; import java.util.Map; +import gnu.getopt.Getopt; + import net.i2p.I2PAppContext; import net.i2p.data.Base32; import net.i2p.data.DataHelper; @@ -37,15 +39,59 @@ public class SAMStreamSend { /** Connection id (Integer) to peer (Flooder) */ private final Map<String, Sender> _remotePeers; + private static final String USAGE = "Usage: SAMStreamSend [-s] [-d] [-r] [-v version] [-b samHost] [-p samPort] peerDestFile dataDir"; + public static void main(String args[]) { - if (args.length < 4) { - System.err.println("Usage: SAMStreamSend samHost samPort peerDestFile dataFile [version]"); + Getopt g = new Getopt("SAM", args, "drsb:p:v:"); + boolean isSSL = false; + int mode = 0; // stream + String version = "1.0"; + String host = "127.0.0.1"; + String port = "7656"; + int c; + while ((c = g.getopt()) != -1) { + switch (c) { + case 's': + isSSL = true; + break; + + case 'd': + mode = 1; // datagram + break; + + case 'r': + mode = 2; // raw + break; + + case 'v': + version = g.getOptarg(); + break; + + case 'b': + host = g.getOptarg(); + break; + + case 'p': + port = g.getOptarg(); + break; + + case 'h': + case '?': + case ':': + default: + System.err.println(USAGE); + return; + } // switch + } // while + + int startArgs = g.getOptind(); + if (args.length - startArgs != 2) { + System.err.println(USAGE); return; } I2PAppContext ctx = I2PAppContext.getGlobalContext(); - //String files[] = new String[args.length - 3]; - SAMStreamSend sender = new SAMStreamSend(ctx, args[0], args[1], args[2], args[3]); - String version = (args.length >= 5) ? args[4] : "1.0"; + SAMStreamSend sender = new SAMStreamSend(ctx, host, port, + args[startArgs], args[startArgs + 1]); sender.startup(version); } diff --git a/apps/sam/java/src/net/i2p/sam/client/SAMStreamSink.java b/apps/sam/java/src/net/i2p/sam/client/SAMStreamSink.java index 24500eb62d..91c1f38935 100644 --- a/apps/sam/java/src/net/i2p/sam/client/SAMStreamSink.java +++ b/apps/sam/java/src/net/i2p/sam/client/SAMStreamSink.java @@ -10,6 +10,8 @@ import java.util.HashMap; import java.util.Map; import java.util.Properties; +import gnu.getopt.Getopt; + import net.i2p.I2PAppContext; import net.i2p.data.Base32; import net.i2p.data.DataHelper; @@ -38,14 +40,59 @@ public class SAMStreamSink { /** Connection id (Integer) to peer (Flooder) */ private final Map<String, Sink> _remotePeers; + private static final String USAGE = "Usage: SAMStreamSink [-s] [-d] [-r] [-v version] [-b samHost] [-p samPort] myDestFile sinkDir"; + public static void main(String args[]) { - if (args.length < 4) { - System.err.println("Usage: SAMStreamSink samHost samPort myDestFile sinkDir [version]"); + Getopt g = new Getopt("SAM", args, "drsb:p:v:"); + boolean isSSL = false; + int mode = 0; // stream + String version = "1.0"; + String host = "127.0.0.1"; + String port = "7656"; + int c; + while ((c = g.getopt()) != -1) { + switch (c) { + case 's': + isSSL = true; + break; + + case 'd': + mode = 1; // datagram + break; + + case 'r': + mode = 2; // raw + break; + + case 'v': + version = g.getOptarg(); + break; + + case 'b': + host = g.getOptarg(); + break; + + case 'p': + port = g.getOptarg(); + break; + + case 'h': + case '?': + case ':': + default: + System.err.println(USAGE); + return; + } // switch + } // while + + int startArgs = g.getOptind(); + if (args.length - startArgs != 2) { + System.err.println(USAGE); return; } I2PAppContext ctx = I2PAppContext.getGlobalContext(); - SAMStreamSink sink = new SAMStreamSink(ctx, args[0], args[1], args[2], args[3]); - String version = (args.length >= 5) ? args[4] : "1.0"; + SAMStreamSink sink = new SAMStreamSink(ctx, host, port, + args[startArgs], args[startArgs + 1]); sink.startup(version); } -- GitLab