@Command // CHECKSTYLE:OFF public void rsync(@Option("recursive") final boolean recursive, @Option("links") final boolean links, @Option("perms") final boolean perms, @Option("owner") final boolean owner, @Option("group") final boolean group, @Option("devices") final boolean devices, @Option("specials") final boolean specials, @Option("times") final boolean times, @Option("exclude") final Pattern exclude, @Option("exclude-from") final File excludeFrom, @Option("include") final Pattern include, @Option("include-from") final File includeFrom, @Option("progress") @Default("true") final boolean progress, final URI[] sources, final URI dest) { // TODO write the implementation... } }
private void checkRequired(final Map<String, String> supplied) { final List<String> required = new ArrayList<>(); for (final Param parameter : spec.options.values()) { if (!parameter.isAnnotationPresent(Required.class)) { continue; } final Option option = parameter.getAnnotation(Option.class); for (String optionValue : option.value()) { if (!supplied.containsKey(optionValue)) { required.add(optionValue); } } } if (!required.isEmpty()) { throw new IllegalArgumentException("Required: " + Join.join(", ", STRING_NAME_CALLBACK, required)); } }
option.value(), option.description(), defaultMappings == null ? null : defaultMappings, parameter, options.nillable()); final String shortName = option.value()[0]; final String mainOption = prefixes[0] + shortName; String def = null; String description = option.description(); if (defaults != null) { for (final Defaults.DefaultMapping mapping : defaults.value()) { for (int i = 1; i < option.value().length; i++) { final String alias = option.value()[i]; for (final String prefix : prefixes) { final String fullAlias = prefix + alias;
@Command("set") public String doSet(@Option({"key", "k"}) String key, @Option({"value", "v"}) String value) { final Object old = properties.setProperty(key, value); final StringBuilder sb = new StringBuilder(); sb.append("set ").append(key).append(" to ").append(value); sb.append("\n"); if (old != null) { sb.append("old value: ").append(old); sb.append("\n"); } return sb.toString(); }
@Command("list") public String doList(@Option({"pattern", "p"}) Pattern pattern) { if (pattern == null) pattern = Pattern.compile(".*"); final StringBuilder sb = new StringBuilder(); for (Map.Entry<Object, Object> entry : properties.entrySet()) { final String key = entry.getKey().toString(); if (pattern.matcher(key).matches()) { sb.append(key).append(" = ").append(entry.getValue()).append("\n"); } } return sb.toString(); } }
@Command public static void wc(@Option("l") @Default("true") final boolean line, @Option("c") @Default("false") final boolean characters, @In final InputStream in, @Out final PrintStream out) { int count = 0; if (characters) { try (Reader reader = new InputStreamReader(in)) { while (reader.read() >= 0) { count++; } } catch (final IOException e) { throw new IllegalStateException(e); } } else if (line) { try (BufferedReader reader = new BufferedReader(new InputStreamReader(in))) { while (reader.readLine() != null) { count++; } } catch (final IOException e) { throw new IllegalStateException(e); } } else { throw new IllegalStateException("wc needs at least one active option"); } out.println(count); }
@Command public String maxMemory(@Option({"unit","u"}) @Default("MEGABYTES") SizeUnit unit) { final long bytes = Runtime.getRuntime().maxMemory(); final Size size = new Size(unit.convert(bytes, SizeUnit.BYTES), unit); return size.toString(); }
@Command public String totalMemory(@Option({"unit","u"}) @Default("MEGABYTES") SizeUnit unit) { final long bytes = Runtime.getRuntime().totalMemory(); final Size size = new Size(unit.convert(bytes, SizeUnit.BYTES), unit); return size.toString(); }
@Command public String freeMemory(@Option({"unit", "u"}) @Default("MEGABYTES") SizeUnit unit) { final long bytes = Runtime.getRuntime().freeMemory(); final Size size = new Size(unit.convert(bytes, SizeUnit.BYTES), unit); return size.toString(); }
@Command("import-all-dashboards") @Description("Import All pre-defined dashboards") public static void importAllPreDefinedDashboards( ElasticSearchOptions elasticSearchOptions, @Option("index-name") @Default(DEFAULT_INDEX_NAME) @Description("ElasticSearch index-name from which the visualizations are created") final String indexName, @Option("split-size") @Default("20") @Description("This will define the number of items you will see in the right side of the chart") final String size, @Option("shards") @Default("5") @Description("Number of shards for the index") final String shards ) throws Exception { String indexPattern = indexName + "*"; String indexDocument = "{\"settings\":{\"index\":{\"number_of_shards\":" + shards + "}}}"; List<String> dashboards = Arrays.asList(new String[]{"API-Dashboard", "TAG-Dashboard"}); ElasticSearchConnection connection = new ElasticSearchConnection(elasticSearchOptions); try (InputStream inVisualizations = Thread.currentThread().getContextClassLoader().getResourceAsStream(VISUALIZATIONS_PATH); InputStream inDashboards = Thread.currentThread().getContextClassLoader().getResourceAsStream(DASHBOARDS_PATH)) { connection.installIndex(indexName, indexDocument); List<String> visualizationIds = DashboardCreator.loadDashboards(dashboards, connection, inDashboards); VisualizationImporter.importVisualizations(visualizationIds, connection, inVisualizations, indexPattern, size); } } }
@Command("import-tag-dashboard") @Description("Import TAG dashboard") public static void importTagDashboard( ElasticSearchOptions elasticSearchOptions, @Option("index-name") @Default(DEFAULT_INDEX_NAME) @Description("ElasticSearch index-name from which the visualizations are created") final String indexName, @Option("split-size") @Default("20") @Description("This will define the number of items you will see in the right side of the chart") final String size, @Option("shards") @Default("5") @Description("Number of shards for the index") final String shards ) throws Exception { String indexPattern = indexName + "*"; String indexDocument = "{\"settings\":{\"index\":{\"number_of_shards\":" + shards + "}}}"; List<String> dashboards = Arrays.asList(new String[]{"TAG-Dashboard"}); ElasticSearchConnection connection = new ElasticSearchConnection(elasticSearchOptions); try (InputStream inVisualizations = Thread.currentThread().getContextClassLoader().getResourceAsStream(VISUALIZATIONS_PATH); InputStream inDashboards = Thread.currentThread().getContextClassLoader().getResourceAsStream(DASHBOARDS_PATH)) { connection.installIndex(indexName, indexDocument); List<String> visualizationIds = DashboardCreator.loadDashboards(dashboards, connection, inDashboards); VisualizationImporter.importVisualizations(visualizationIds, connection, inVisualizations, indexPattern, size); } }