1289177Speter/*
2289177Speter * help-cmd.c -- Provide help
3289177Speter *
4289177Speter * ====================================================================
5289177Speter *    Licensed to the Apache Software Foundation (ASF) under one
6289177Speter *    or more contributor license agreements.  See the NOTICE file
7289177Speter *    distributed with this work for additional information
8289177Speter *    regarding copyright ownership.  The ASF licenses this file
9289177Speter *    to you under the Apache License, Version 2.0 (the
10289177Speter *    "License"); you may not use this file except in compliance
11289177Speter *    with the License.  You may obtain a copy of the License at
12289177Speter *
13289177Speter *      http://www.apache.org/licenses/LICENSE-2.0
14289177Speter *
15289177Speter *    Unless required by applicable law or agreed to in writing,
16289177Speter *    software distributed under the License is distributed on an
17289177Speter *    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
18289177Speter *    KIND, either express or implied.  See the License for the
19289177Speter *    specific language governing permissions and limitations
20289177Speter *    under the License.
21289177Speter * ====================================================================
22289177Speter */
23289177Speter
24289177Speter/* ==================================================================== */
25289177Speter
26289177Speter
27289177Speter
28289177Speter/*** Includes. ***/
29289177Speter
30289177Speter#include "svn_string.h"
31289177Speter#include "svn_error.h"
32289177Speter#include "svn_version.h"
33289177Speter#include "cl.h"
34289177Speter
35289177Speter#include "svn_private_config.h"
36289177Speter
37289177Speter
38289177Speter/*** Code. ***/
39289177Speter
40289177Speter/* This implements the `svn_opt_subcommand_t' interface. */
41289177Spetersvn_error_t *
42289177Spetersvn_cl__help(apr_getopt_t *os,
43289177Speter             void *baton,
44289177Speter             apr_pool_t *pool)
45289177Speter{
46289177Speter  svn_cl__opt_state_t *opt_state;
47289177Speter
48289177Speter  char help_header[] =
49289177Speter  N_("usage: svnbench <subcommand> [options] [args]\n"
50289177Speter     "Subversion benchmarking tool.\n"
51289177Speter     "Type 'svnbench help <subcommand>' for help on a specific subcommand.\n"
52289177Speter     "Type 'svnbench --version' to see the program version and RA modules\n"
53289177Speter     "  or 'svnbench --version --quiet' to see just the version number.\n"
54289177Speter     "\n"
55289177Speter     "Most subcommands take file and/or directory arguments, recursing\n"
56289177Speter     "on the directories.  If no arguments are supplied to such a\n"
57289177Speter     "command, it recurses on the current directory (inclusive) by default.\n"
58289177Speter     "\n"
59289177Speter     "Available subcommands:\n");
60289177Speter
61289177Speter  char help_footer[] =
62289177Speter  N_("Subversion is a tool for version control.\n"
63289177Speter     "For additional information, see http://subversion.apache.org/\n");
64289177Speter
65289177Speter  const char *ra_desc_start
66289177Speter    = _("The following repository access (RA) modules are available:\n\n");
67289177Speter
68289177Speter  svn_stringbuf_t *version_footer;
69289177Speter
70289177Speter  if (baton)
71289177Speter    opt_state = ((svn_cl__cmd_baton_t *) baton)->opt_state;
72289177Speter  else
73289177Speter    opt_state = NULL;
74289177Speter
75289177Speter  version_footer = svn_stringbuf_create(ra_desc_start, pool);
76289177Speter  SVN_ERR(svn_ra_print_modules(version_footer, pool));
77289177Speter
78362181Sdim  return svn_opt_print_help5(os,
79289177Speter                             "svnbench",   /* ### erm, derive somehow? */
80289177Speter                             opt_state ? opt_state->version : FALSE,
81289177Speter                             opt_state ? opt_state->quiet : FALSE,
82289177Speter                             opt_state ? opt_state->verbose : FALSE,
83289177Speter                             version_footer->data,
84289177Speter                             help_header,   /* already gettext()'d */
85289177Speter                             svn_cl__cmd_table,
86289177Speter                             svn_cl__options,
87289177Speter                             svn_cl__global_options,
88289177Speter                             _(help_footer),
89289177Speter                             pool);
90289177Speter}
91