1SVK::Command(3) User Contributed Perl Documentation SVK::Command(3)
2
3
4
6 SVK::Command - Base class and dispatcher for SVK commands
7
9 use SVK::Command;
10 my $xd = SVK::XD->new ( ... );
11 my $cmd = 'checkout';
12 my @args = qw( file1 file2 );
13 open my $output_fh, '>', 'svk.log' or die $!;
14 SVK::Command->invoke ($xd, $cmd, $output_fh, @args);
15
17 This module resolves alias for commands and dispatches them, usually
18 with the "invoke" method. If the command invocation is incorrect,
19 usage information is displayed instead.
20
22 Class Methods
23 invoke ($xd, $cmd, $output_fh, @args)
24
25 Takes a SVK::XD object, the command name, the output scalar reference,
26 and the arguments for the command. The command name is translated with
27 the %alias map.
28
29 On Win32, after @args is parsed for named options, the remaining
30 positional arguments are expanded for shell globbing with "bsd_glob".
31
32 getopt ($argv, %opt)
33
34 Takes a arrayref of argv for run getopt for the command, with
35 additional %opt getopt options.
36
37 Instance Methods
38 "SVK::Command->invoke" loads the corresponding class
39 "SVK::Command::$name", so that's the class you want to implement the
40 following methods in:
41
42 options ()
43
44 Returns a hash where the keys are Getopt::Long specs and the values are
45 a string that will be the keys storing the parsed option in $self.
46
47 Subclasses should override this to add their own options. Defaults to
48 an empty list.
49
50 opt_recursive
51
52 Defines if the command needs the recursive flag and its default. The
53 value will be stored in "recursive".
54
55 parse_arg (@args)
56
57 This method is called with the remaining arguments after parsing named
58 options with "options" above. It should use the "arg_*" methods to
59 return a list of parsed arguments for the command's "lock" and "run"
60 method to process. Defaults to return a single "undef".
61
62 lock (@parse_args)
63
64 Calls the "lock_*" methods to lock the SVK::XD object. The arguments
65 will be what is returned from "parse_arg".
66
67 run (@parsed_args)
68
69 Actually process the command. The arguments will be what is returned
70 from "parse_arg".
71
72 Returned undef on success. Return a string message to notify the caller
73 errors.
74
75 Utility Methods
76 Except for "arg_depotname", all "arg_*" methods below returns a
77 SVK::Path object, which consists of a hash with the following keys:
78
79 cinfo
80 copath
81 depotpath
82 path
83 repos
84 repospath
85 report
86 targets
87
88 The hashes are handy to pass to many other functions.
89
90 arg_condensed (@args)
91
92 Argument is a number of checkout paths.
93
94 arg_uri_maybe ($arg, $no_new_mirror)
95
96 Argument might be a URI or a depotpath. If it is a URI, try to find it
97 at or under one of currently mirrored paths. If not found, prompts the
98 user to mirror and sync it.
99
100 arg_co_maybe ($arg, $no_new_mirror)
101
102 Argument might be a checkout path or a depotpath. If argument is URI
103 then handles it via "arg_uri_maybe".
104
105 arg_copath ($arg)
106
107 Argument is a checkout path.
108
109 arg_depotpath ($arg)
110
111 Argument is a depotpath, including the slashes and depot name.
112
113 arg_depotroot ($arg)
114
115 Argument is a depot root, or a checkout path that needs to be resolved
116 into a depot root.
117
118 arg_depotname ($arg)
119
120 Argument is a name of depot. such as '' or 'test' that is being used
121 normally between two slashes.
122
123 arg_path ($arg)
124
125 Argument is a plain path in the filesystem.
126
127 apply_revision($target)
128
129 Apply the given revision from command line to $target.
130
131 parse_revlist ()
132
133 Parse -c or -r to a list of [from, to] pairs.
134
135 lock_target ($target)
136
137 XXX Undocumented
138
139 lock_coroot ($target)
140
141 XXX Undocumented
142
143 brief_usage ($file)
144
145 Display an one-line brief usage of the command object. Optionally, a
146 file could be given to extract the usage from the POD.
147
148 filename
149
150 Return the filename for the command module.
151
152 usage ($want_detail)
153
154 Display usage. If $want_detail is true, the "DESCRIPTION" section is
155 displayed as well.
156
157 Error Handling
158 handle_error ($error)
159
160 XXX Undocumented
161
162 add_handler ($error, $handler)
163
164 XXX Undocumented
165
166 msg_handler ($error, $message)
167
168 XXX Undocumented
169
170 msg_handler ($error)
171
172 XXX Undocumented
173
174 command ($cmd, \%args)
175
176 Construct a command object of the $cmd subclass and return it.
177
178 The new object will share the "xd" from the calling command object;
179 contents in %args is also assigned into the new object.
180
181 rebless ($cmd, \%args)
182
183 Like "command" above, but modifies the calling object instead of
184 creating a new one. Useful for a command object to recast itself into
185 another command class.
186
187 run_command_recursively($target, $code)
188
189 Traverse $target and and invoke $code with each node.
190
192 SVK, SVK::XD, "SVK::Command::*"
193
194
195
196perl v5.36.0 2022-07-22 SVK::Command(3)