aboutsummaryrefslogtreecommitdiff
path: root/bdep/status.cli
blob: 7abd7f3b6bbd49670ede40f912d419146f80060a (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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
// file      : bdep/status.cli
// license   : MIT; see accompanying LICENSE file

include <bdep/project.cli>;

"\section=1"
"\name=bdep-status"
"\summary=print status of project and/or its dependencies"

namespace bdep
{
  {
    "<options>
     <prj-spec> <prj-dir>
     <pkg-spec> <pkg-dir>
     <cfg-spec> <cfg-name> <cfg-dir>
     <dep-spec> <pkg> <ver>",

    "\h|SYNOPSIS|

     \c{\b{bdep status} [<options>] [<pkg-spec>] [<cfg-spec>] [<dep-spec>...]}

     \c{<dep-spec> = <pkg>[\b{/}<ver>]\n
        <cfg-spec> = (\b{@}<cfg-name> | \b{--config}|\b{-c} <cfg-dir>)... | \b{--all}|\b{-a}\n
        <pkg-spec> = (\b{--directory}|\b{-d} <pkg-dir>)... | <prj-spec>\n
        <prj-spec> = \b{--directory}|\b{-d} <prj-dir>}

     \h|DESCRIPTION|

     The \cb{status} command prints the status of project packages and/or
     their dependencies in one or more build configurations.

     If no project or package directory is specified, then the current working
     directory is assumed. If no configuration is specified, then the default
     configurations are assumed. See \l{bdep-projects-configs(1)} for details
     on specifying projects and configurations.

     If no <dep-spec> arguments are specified, then \cb{status} prints the
     status of the project's packages. Otherwise, the status of the specified
     dependency packages is printed. Additionally, the status of immediate or
     all dependencies of the above packages can be printed by specifying the
     \c{\b{--immediate}|\b{-i}} or \c{\b{--recursive}|\b{-r}} options,
     respectively.

     In the default output format (see the \cb{--stdout-format} common
     option), the status of each package is printed on a separate line. Note
     that the status is written to \cb{stdout}, not \cb{stderr}. The semantics
     of <dep-spec> and the format of the status line are described in
     \l{bpkg-pkg-status(1)}.

     If the output format is \cb{json}, then the output is a JSON array of
     objects which are the serialized representation of the following C++
     \cb{struct} \cb{configuration_package_status}:

     \
     struct configuration
     {
       uint64_t         id;
       string           path;
       optional<string> name;
     };

     struct configuration_package_status
     {
       configuration configuration;
       vector<package_status> packages;
     };
     \

     For example:

     \
     [
       {
         \"configuration\": {
           \"id\": 1,
           \"path\": \"/tmp/hello-gcc\",
           \"name\": \"gcc\"
         },
         \"packages\": [
           {
             \"name\": \"hello\",
             \"status\": \"configured\",
             \"version\": \"1.0.0\",
             \"hold_package\": true,
             \"available_versions\": [
               {
                 \"version\": \"1.0.1\"
               },
               {
                 \"version\": \"2.0.0\"
               }
             ],
             \"dependencies\": [
               {
                 \"name\": \"libhello\",
                 \"status\": \"configured\",
                 \"version\": \"1.0.2\"
               }
             ]
           }
         ]
       }
     ]
     \

     See the JSON OUTPUT section in \l{bdep-common-options(1)} for details on
     the overall properties of this format and the semantics of the
     \cb{struct} serialization.

     Refer to the \cb{list} subcommand of \l{bdep-config(1)} for details on
     the \cb{struct} \cb{configuration} members. Refer to
     \l{bpkg-pkg-status(1)} for the definition of \cb{struct}
     \cb{package_status}.
     "
  }

  class cmd_status_options: project_options
  {
    "\h|STATUS OPTIONS|"

    bool --immediate|-i
    {
      "Also print the status of immediate dependencies."
    }

    bool --recursive|-r
    {
      "Also print the status of all dependencies, recursively."
    }

    bool --old-available|-o
    {
      "Print old available versions."
    }

    bool --fetch|-f
    {
      "Perform the \cb{fetch} command prior to printing the status."
    }

    bool --fetch-full|-F
    {
      "Perform the \cb{fetch --full} command prior to printing the status."
    }
  };

  "
   \h|DEFAULT OPTIONS FILES|

   See \l{bdep-default-options-files(1)} for an overview of the default
   options files. For the \cb{status} command the search start directory is
   the project directory. The following options files are searched for in
   each directory and, if found, loaded in the order listed:

   \
   bdep.options
   bdep-status.options
   \

   The following \cb{status} command options cannot be specified in the
   default options files:

   \
   --directory|-d
   \
  "
}