aboutsummaryrefslogtreecommitdiffhomepage
path: root/third_party/java/jarjar/jarjar-command/src/main/java/com/tonicsystems/jarjar/Main.java
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/java/jarjar/jarjar-command/src/main/java/com/tonicsystems/jarjar/Main.java')
-rw-r--r--third_party/java/jarjar/jarjar-command/src/main/java/com/tonicsystems/jarjar/Main.java147
1 files changed, 0 insertions, 147 deletions
diff --git a/third_party/java/jarjar/jarjar-command/src/main/java/com/tonicsystems/jarjar/Main.java b/third_party/java/jarjar/jarjar-command/src/main/java/com/tonicsystems/jarjar/Main.java
deleted file mode 100644
index 985af607d3..0000000000
--- a/third_party/java/jarjar/jarjar-command/src/main/java/com/tonicsystems/jarjar/Main.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/**
- * Copyright 2007 Google Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.tonicsystems.jarjar;
-
-import com.tonicsystems.jarjar.classpath.ClassPath;
-import com.tonicsystems.jarjar.transform.jar.DefaultJarProcessor;
-import com.tonicsystems.jarjar.transform.config.RulesFileParser;
-import com.tonicsystems.jarjar.dependencies.TextDependencyHandler;
-import com.tonicsystems.jarjar.dependencies.DependencyFinder;
-import com.tonicsystems.jarjar.dependencies.DependencyHandler;
-import com.tonicsystems.jarjar.strings.StringDumper;
-import com.tonicsystems.jarjar.transform.config.AbstractPattern;
-import com.tonicsystems.jarjar.transform.JarTransformer;
-import java.io.File;
-import java.io.IOException;
-import java.util.List;
-import javax.annotation.CheckForNull;
-import javax.annotation.Nonnull;
-import joptsimple.OptionParser;
-import joptsimple.OptionSet;
-import joptsimple.OptionSpec;
-
-public class Main {
-
- private static final String LINE_SEPARATOR = System.getProperty("line.separator");
- private static final String PATH_SEPARATOR = System.getProperty("path.separator");
-
- public static enum Mode {
-
- strings, find, process;
- }
-
- private final OptionParser parser = new OptionParser();
- private final OptionSpec<Void> helpOption = parser.accepts("help")
- .forHelp();
- private final OptionSpec<Mode> modeOption = parser.accepts("mode")
- .withRequiredArg().ofType(Mode.class).defaultsTo(Mode.process).describedAs("Mode to run (strings, find, process)");
- private final OptionSpec<DependencyHandler.Level> levelOption = parser.accepts("level")
- .withRequiredArg().ofType(DependencyHandler.Level.class).defaultsTo(DependencyHandler.Level.CLASS).describedAs("Level for DepHandler.");
- private final OptionSpec<File> fromFilesOption = parser.accepts("from")
- .withRequiredArg().ofType(File.class).withValuesSeparatedBy(PATH_SEPARATOR).describedAs("Classpath for strings, find.");
- private final OptionSpec<File> rulesOption = parser.accepts("rules")
- .withRequiredArg().ofType(File.class).describedAs("Rules file.");
- private final OptionSpec<File> outputOption = parser.accepts("output")
- .withRequiredArg().ofType(File.class).describedAs("Output JAR file.");
- private final OptionSpec<File> filesOption = parser.nonOptions()
- .ofType(File.class).describedAs("JAR files or directories to process.");
-
- public void run(@Nonnull String[] args) throws Exception {
- OptionSet options = parser.parse(args);
- if (options.has(helpOption)) {
- parser.printHelpOn(System.err);
- System.exit(1);
- }
-
- Mode mode = options.valueOf(modeOption);
- switch (mode) {
- case find:
- find(options);
- break;
- case process:
- process(options);
- break;
- case strings:
- strings(options);
- break;
- default:
- throw new IllegalArgumentException("Illegal mode " + mode);
- }
- }
-
- private static boolean isEmpty(@CheckForNull List<?> values) {
- if (values == null)
- return true;
- return values.isEmpty();
- }
-
- @Nonnull
- private <T> T valueOf(@Nonnull OptionSet options, @Nonnull OptionSpec<T> option) {
- T value = options.valueOf(option);
- if (value == null)
- throw new IllegalArgumentException(option + " is required.");
- return value;
- }
-
- @Nonnull
- private <T> List<T> valuesOf(@Nonnull OptionSet options, @Nonnull OptionSpec<T> option) {
- List<T> values = options.valuesOf(option);
- if (isEmpty(values))
- throw new IllegalArgumentException(option + " is required.");
- return values;
- }
-
- private static ClassPath newClassPath(Iterable<? extends File> files) {
- return new ClassPath(new File(System.getProperty("user.dir")), files);
- }
-
- public void strings(@Nonnull OptionSet options) throws IOException {
- List<File> files = options.valuesOf(filesOption);
- File parent = new File(System.getProperty("user.dir"));
- new StringDumper().run(System.out, newClassPath(files));
- System.out.flush();
- }
-
- public void find(@Nonnull OptionSet options) throws IOException {
- List<File> toFiles = valuesOf(options, filesOption);
- List<File> fromFiles = options.valuesOf(fromFilesOption);
- if (isEmpty(fromFiles))
- fromFiles = toFiles;
- DependencyHandler.Level level = valueOf(options, levelOption);
- DependencyHandler handler = new TextDependencyHandler(System.out, level);
- new DependencyFinder().run(handler, newClassPath(fromFiles), newClassPath(toFiles));
- System.out.flush();
- }
-
- public void process(@Nonnull OptionSet options) throws IOException {
- File outputFile = valueOf(options, outputOption);
- File rulesFile = valueOf(options, rulesOption);
- List<File> files = valuesOf(options, filesOption);
-
- DefaultJarProcessor processor = new DefaultJarProcessor();
- RulesFileParser.parse(processor, rulesFile);
- processor.setSkipManifest(Boolean.getBoolean("skipManifest"));
-
- JarTransformer transformer = new JarTransformer(outputFile, processor);
- transformer.transform(newClassPath(files));
- }
-
- public static void main(String[] args) throws Exception {
- Main main = new Main();
- main.run(args);
- // MainUtil.runMain(new Main(), args, "help");
- }
-}