aboutsummaryrefslogtreecommitdiff
path: root/src/command_line.cc
blob: cdd354c9d9cfa8634d179f9faa1383ba3f323cca (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
/* vim: set sw=4 sts=4 et foldmethod=syntax : */

/*
 * Copyright (c) 2006 Ciaran McCreesh <ciaranm@gentoo.org>
 *
 * This file is part of the Paludis package manager. Paludis is free software;
 * you can redistribute it and/or modify it under the terms of the GNU General
 * Public License version 2, as published by the Free Software Foundation.
 *
 * Paludis is distributed in the hope that it will be useful, but WITHOUT ANY
 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
 * details.
 *
 * You should have received a copy of the GNU General Public License along with
 * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
 * Place, Suite 330, Boston, MA  02111-1307  USA
 */

#include "src/command_line.hh"

CommandLine::CommandLine() :
    ArgsHandler(),

    action_args(this, "Actions (specify exactly one)"),
    a_query(&action_args,    "query",        'q',  "Query for package information"),
    a_install(&action_args,  "install",      'i',  "Install one or more packages"),
    a_sync(&action_args,     "sync",         '\0', "Sync repositories"),
    a_list_repositories(&action_args, "list-repositories", '\0', "List available repositories"),
    a_list_categories(&action_args, "list-categories", '\0', "List available categories"),
    a_list_packages(&action_args, "list-packages", '\0', "List available packages"),
    a_list_sync_protocols(&action_args, "list-sync-protocols", '\0', "List available sync protocols"),
    a_list_repository_formats(&action_args, "list-repository-formats", '\0', "List available repository formats"),
    a_has_version(&action_args, "has-version", '\0', "Check whether the specified atom is installed"),
    a_best_version(&action_args, "best-version", '\0', "Display the best version of the specified atom"),
    a_version(&action_args,  "version",      'V', "Display program version"),
    a_help(&action_args,     "help",         'h', "Display program help"),

    general_args(this, "General options"),
    a_log_level(&general_args, "log-level",  '\0', "Specify the log level",
            paludis::args::EnumArg::EnumArgOptions("debug", "Show debug output (noisy)")
            ("qa",      "Show QA messages and warnings only")
            ("warning", "Show warnings only")
            ("silent",  "Suppress all log messages"),
            "qa"),
    a_no_colour(&general_args, "no-colour", 'c', "Do not use colour"),
    a_no_color(&a_no_colour, "no-color"),
    a_config_suffix(&general_args, "config-suffix", '\0', "Config directory suffix"),

    query_args(this, "Query options"),
    a_show_slot(&query_args,        "show-slot",    'S', "Show SLOTs"),
    a_show_license(&query_args,     "show-license", 'L', "Show licenses"),
    a_show_licence(&a_show_license, "show-licence"),
    a_show_deps(&query_args,        "show-deps",    'd', "Show dependencies"),
    a_show_metadata(&query_args,    "show-metadata", 'M', "Show raw metadata"),

    install_args(this, "Install options"),
    a_pretend(&install_args, "pretend", 'p', "Pretend only"),

    dl_args(this, "DepList behaviour (use with caution)"),
    a_dl_rdepend_post(&dl_args, "dl-rdepend-post", '\0', "Treat RDEPEND like PDEPEND", 
        paludis::args::EnumArg::EnumArgOptions("always", "Always")
        ("never", "Never")
        ("as-needed", "To resolve circular dependencies"),
        "as-needed"),
    a_dl_drop_self_circular(&dl_args, "dl-drop-self-circular", '\0', "Drop self-circular dependencies"),
    a_dl_drop_circular(&dl_args, "dl-drop-circular", '\0', "Drop circular dependencies"),
    a_dl_drop_all(&dl_args, "dl-drop-all", '0', "Drop all dependencies"),
    a_dl_ignore_installed(&dl_args, "dl-ignore-installed", 'e', "Ignore installed packages"),
    a_dl_recursive_deps(&dl_args, "dl-recursive-deps", 'D', "Check dependencies for installed packages"),
    a_dl_max_stack_depth(&dl_args, "dl-max-stack-depth", '\0', "Maximum stack depth (default 100)")
{
    a_dl_max_stack_depth.set_argument(100);
}

CommandLine::~CommandLine()
{
}