kopia lustrzana https://github.com/gaul/s3proxy
Use args4j for argument parsing
rodzic
f40693f214
commit
1d8dfea9c7
5
pom.xml
5
pom.xml
|
@ -265,6 +265,11 @@
|
||||||
<version>1.9.28.1</version>
|
<version>1.9.28.1</version>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>args4j</groupId>
|
||||||
|
<artifactId>args4j</artifactId>
|
||||||
|
<version>2.0.31</version>
|
||||||
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>ch.qos.logback</groupId>
|
<groupId>ch.qos.logback</groupId>
|
||||||
<artifactId>logback-classic</artifactId>
|
<artifactId>logback-classic</artifactId>
|
||||||
|
|
|
@ -29,23 +29,43 @@ import org.jclouds.Constants;
|
||||||
import org.jclouds.ContextBuilder;
|
import org.jclouds.ContextBuilder;
|
||||||
import org.jclouds.blobstore.BlobStoreContext;
|
import org.jclouds.blobstore.BlobStoreContext;
|
||||||
import org.jclouds.logging.slf4j.config.SLF4JLoggingModule;
|
import org.jclouds.logging.slf4j.config.SLF4JLoggingModule;
|
||||||
|
import org.kohsuke.args4j.CmdLineException;
|
||||||
|
import org.kohsuke.args4j.CmdLineParser;
|
||||||
|
import org.kohsuke.args4j.Option;
|
||||||
|
|
||||||
public final class Main {
|
public final class Main {
|
||||||
private Main() {
|
private Main() {
|
||||||
throw new AssertionError("intentionally not implemented");
|
throw new AssertionError("intentionally not implemented");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static final class Options {
|
||||||
|
@Option(name = "--properties",
|
||||||
|
usage = "S3Proxy configuration (required)")
|
||||||
|
private File propertiesFile;
|
||||||
|
|
||||||
|
@Option(name = "--version", usage = "display version")
|
||||||
|
private boolean version;
|
||||||
|
}
|
||||||
|
|
||||||
public static void main(String[] args) throws Exception {
|
public static void main(String[] args) throws Exception {
|
||||||
if (args.length == 1 && args[0].equals("--version")) {
|
Options options = new Options();
|
||||||
|
CmdLineParser parser = new CmdLineParser(options);
|
||||||
|
try {
|
||||||
|
parser.parseArgument(args);
|
||||||
|
} catch (CmdLineException cle) {
|
||||||
|
usage(parser);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (options.version) {
|
||||||
System.err.println(
|
System.err.println(
|
||||||
Main.class.getPackage().getImplementationVersion());
|
Main.class.getPackage().getImplementationVersion());
|
||||||
System.exit(0);
|
System.exit(0);
|
||||||
} else if (args.length != 2) {
|
} else if (options.propertiesFile == null) {
|
||||||
System.err.println("Usage: s3proxy --properties FILE");
|
usage(parser);
|
||||||
System.exit(1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Properties properties = new Properties();
|
Properties properties = new Properties();
|
||||||
try (InputStream is = new FileInputStream(new File(args[1]))) {
|
try (InputStream is = new FileInputStream(options.propertiesFile)) {
|
||||||
properties.load(is);
|
properties.load(is);
|
||||||
}
|
}
|
||||||
properties.putAll(System.getProperties());
|
properties.putAll(System.getProperties());
|
||||||
|
@ -138,4 +158,10 @@ public final class Main {
|
||||||
System.exit(1);
|
System.exit(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void usage(CmdLineParser parser) {
|
||||||
|
System.err.println("Usage: s3proxy [options...]");
|
||||||
|
parser.printUsage(System.err);
|
||||||
|
System.exit(1);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Ładowanie…
Reference in New Issue