package jp.co.worksap.workspace.cli; import java.io.File; import java.net.URI; import javax.annotation.Nonnull; import javax.annotation.Nullable; import lombok.Getter; import lombok.Setter; import org.kohsuke.args4j.Option; import com.google.common.base.Optional; public class CliOption { private static final String DEFAULT_CONFIG_FILE = "./project.json"; @Getter @Setter @Option(name = "-h", aliases = "--help", usage = "show help") private boolean helpRequired; @Getter @Setter @Option(name = "-d", aliases = "--debug", usage = "output debug logs") private boolean debug; @Nullable @Setter @Option(name = "-l", aliases = "--log", metaVar = "debug.log", usage = "file to log") private File logFile = null; @Getter @Setter @Nullable @Option(name = "-f", aliases = "--file", metaVar = "config.json", usage = "specify configuration file") private URI configurationFile = URI.create(DEFAULT_CONFIG_FILE); @Getter @Setter @Nullable @Option(name = "-t", aliases = "--target-location", metaVar = "path/to/workspace", usage = "specify path of directory to set up workspace") private File targetLocation; @Nonnull public Optional<File> getLogFile() { return Optional.fromNullable(logFile); } }