SVK::Command(3) User Contributed Perl Documentation SVK::Command(3)
NAME
SVK::Command - Base class and dispatcher for SVK commands
SYNOPSIS
use SVK::Command;
my $xd = SVK::XD->new ( ... );
my $cmd = 'checkout';
my @args = qw( file1 file2 );
open my $output_fh, '>', 'svk.log' or die $!;
SVK::Command->invoke ($xd, $cmd, $output_fh, @args);
DESCRIPTION
This module resolves alias for commands and dispatches them, usually with the "invoke" method. If
the command invocation is incorrect, usage information is displayed instead.
METHODS
Class Methods
invoke ($xd, $cmd, $output_fh, @args)
Takes a SVK::XD object, the command name, the output scalar reference, and the arguments for the
command. The command name is translated with the %alias map.
On Win32, after @args is parsed for named options, the remaining positional arguments are expanded
for shell globbing with "bsd_glob".
getopt ($argv, %opt)
Takes a arrayref of argv for run getopt for the command, with additional %opt getopt options.
Instance Methods
"SVK::Command->invoke" loads the corresponding class "SVK::Command::$name", so that's the class you
want to implement the following methods in:
options ()
Returns a hash where the keys are Getopt::Long specs and the values are a string that will be the
keys storing the parsed option in $self.
Subclasses should override this to add their own options. Defaults to an empty list.
opt_recursive
Defines if the command needs the recursive flag and its default. The value will be stored in
"recursive".
parse_arg (@args)
This method is called with the remaining arguments after parsing named options with "options" above.
It should use the "arg_*" methods to return a list of parsed arguments for the command's "lock" and
"run" method to process. Defaults to return a single "undef".
lock (@parse_args)
Calls the "lock_*" methods to lock the SVK::XD object. The arguments will be what is returned from
"parse_arg".
run (@parsed_args)
Actually process the command. The arguments will be what is returned from "parse_arg".
Returned undef on success. Return a string message to notify the caller errors.
Utility Methods
Except for "arg_depotname", all "arg_*" methods below returns a SVK::Path object, which consists of a
hash with the following keys:
cinfo
copath
depotpath
path
repos
repospath
report
targets
The hashes are handy to pass to many other functions.
arg_condensed (@args)
Argument is a number of checkout paths.
arg_uri_maybe ($arg, $no_new_mirror)
Argument might be a URI or a depotpath. If it is a URI, try to find it at or under one of currently
mirrored paths. If not found, prompts the user to mirror and sync it.
arg_co_maybe ($arg, $no_new_mirror)
Argument might be a checkout path or a depotpath. If argument is URI then handles it via
"arg_uri_maybe".
arg_copath ($arg)
Argument is a checkout path.
arg_depotpath ($arg)
Argument is a depotpath, including the slashes and depot name.
arg_depotroot ($arg)
Argument is a depot root, or a checkout path that needs to be resolved into a depot root.
arg_depotname ($arg)
Argument is a name of depot. such as '' or 'test' that is being used normally between two slashes.
arg_path ($arg)
Argument is a plain path in the filesystem.
apply_revision($target)
Apply the given revision from command line to $target.
parse_revlist ()
Parse -c or -r to a list of [from, to] pairs.
lock_target ($target)
XXX Undocumented
lock_coroot ($target)
XXX Undocumented
brief_usage ($file)
Display an one-line brief usage of the command object. Optionally, a file could be given to extract
the usage from the POD.
filename
Return the filename for the command module.
usage ($want_detail)
Display usage. If $want_detail is true, the "DESCRIPTION" section is displayed as well.
Error Handling
handle_error ($error)
XXX Undocumented
add_handler ($error, $handler)
XXX Undocumented
msg_handler ($error, $message)
XXX Undocumented
msg_handler ($error)
XXX Undocumented
command ($cmd, \%args)
Construct a command object of the $cmd subclass and return it.
The new object will share the "xd" from the calling command object; contents in %args is also
assigned into the new object.
rebless ($cmd, \%args)
Like "command" above, but modifies the calling object instead of creating a new one. Useful for a
command object to recast itself into another command class.
run_command_recursively($target, $code)
Traverse $target and and invoke $code with each node.
SEE ALSO
SVK, SVK::XD, "SVK::Command::*"
perl v5.8.8 2006-12-28 SVK::Command(3)
|