/* * Copyright 2020 See AUTHORS file * * 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.badlogicgames.packr; import com.lexicalscope.jewel.cli.Option; import com.lexicalscope.jewel.cli.Unparsed; import java.io.File; import java.util.List; /** * Packr command line interface. *

* Use 'java -jar packr[-X.Y-SNAPSHOT].jar --help' to show this command line help. */ public interface PackrCommandLine { @Option(helpRequest = true, description = "display help", shortName = "h", longName = "help") boolean help (); @Option(description = "print additional information to console", shortName = "v", longName = "verbose") boolean verbose (); @Unparsed File config (); boolean isConfig (); @Option(description = "target operating system", longName = "platform", defaultToNull = true) String platform (); @Option(description = "file path or URL to a JDK to be bundled", longName = "jdk", defaultToNull = true) String jdk (); @Option(description = "name of native executable, without extension", longName = "executable", defaultToNull = true) String executable (); @Option(description = "JAR file(s) containing code and assets to be packed", longName = "classpath", defaultToNull = true) List classpath (); @Option(description = "JAR file(s) to remove platform libs", longName = "removelibs", defaultToNull = true) List removePlatformLibs (); @Option(description = "fully qualified main class name, e.g. com.badlogic.MyApp", longName = "mainclass", defaultToNull = true) String mainClass (); @Option(description = "arguments passed to the JVM, e.g. Xmx1G, without dashes", longName = "vmargs", defaultToNull = true) List vmArgs (); @Option(description = "minimize JRE by removing folders and files specified in config file", longName = "minimizejre", defaultToNull = true) String minimizeJre (); @Option(description = "folder to cache bundled JRE, to speedup builds", longName = "cachejre", defaultToNull = true) File cacheJre (); @Option(description = "additional files and folders to be packed next to the executable", longName = "resources", defaultToNull = true) List resources (); @Option(description = "output directory", longName = "output", defaultToNull = true) File outDir (); @Option(description = "platform libs output directory", longName = "libs", defaultToNull = true) File platformLibsOutDir (); @Option(description = "file containing icon resources (needs to fit platform, OS X only)", longName = "icon", defaultToNull = true) File iconResource (); @Option(description = "bundle identifier, e.g. com.badlogic (used for Info.plist on OS X)", longName = "bundle", defaultToNull = true) String bundleIdentifier (); @Option(description = "use ZGC if the operating system supports it", longName = "useZgcIfSupportedOs") boolean useZgcIfSupportedOs (); @Option(description = "path to bundled JRE (path separator must be forward slash /)", longName = "jrePath", defaultValue = "jre") String jrePath (); }