NAME

VCP::Utils - utilities used within VCP's modules.

SYNOPSIS

use VCP::Utils qw( shell_quote );

DESCRIPTION

A mix-in class providing methods shared by VCP::Source::cvs and VCP::Dest::cvs, mostly wrappers for calling the cvs command.

FUNCTIONS

shell_quote
my $line = shell_quote \@command;
my $line = shell_quote @command;
print STDERR, $line, "\n";

Selectively quotes the command line to allow it to be printed in a non-vague fashion and to be pastable in the local shell (sh/bash on Unix, COMMAND.COM, etc. on Win32 and OS2).

NOTE: May not be perfect; errs on the side of safety and doesn't try to escape things right on Win32 yet. Patches welcome.

empty

Determines if a scalar value is empty, that is not defined or zero length.

escape_filename

Escape a string so that it may be used as a filename. Converts characters other than "-", "_", and alphanumerics to %NN% escape sequences where NN is the ordinal value (usually the ASCII value or UTF-8 codepoint) of the character.

start_dir_rel2abs
start_dir_rel2abs( $fn );

If $fn is a relative path (according to File::Spec), converts it to an absolute path using start_dir() as the base directory.

start_dir

Returns the directory that was current when VCP::Utils was parsed.

xchdir

Changes to a directory (unless we're already in that directory) and logs the change. Throws an exception on error. Sets $ENV{PWD}.

You should use minimal canonical paths where possible so that $ENV{PWD} is a simple path. Some child processes might not like paths with thisdir ("/./") or updir segments ("/../").

Relative paths are an error.

COPYRIGHT

Copyright 2000, Perforce Software, Inc. All Rights Reserved.

This module and the VCP package are licensed according to the terms given in the file LICENSE accompanying this distribution, a copy of which is included in vcp.