Arch::Util3pm
Arch utility functions
Usage
use Arch::Util qw(run_tla load_file save_file setup_config_dir);my $abrowse_output = run_tla('abrowse --summary --date --creator');my ($full_version) = run_tla('tree-version');my @full_revisions = run_tla('logs', '-r', '-f');my $cfg_dir = setup_config_dir(undef, "archipelago");my $content = load_file("$cfg_dir/versions.cfg");$content =~ s/^last_version = .*/last_version = $full_version/m;save_file("$cfg_dir/versions.cfg", $content);
Overview
A set of helper functions suitable for GNU Arch related projects in Perl.
Higher (object oriented) levels of Arch/Perl library make use of these helper functions.
Functions
The following functions are available:
run_tla, run_cmd, run_pipe_from, load_file, save_file, copy_dir, remove_dir, setup_config_dir, standardize_date, date2daysago, date2age, parse_creator_email, adjacent_revision.
The system functions die on errors.
is_tla_functional-
Verify whether the system has a working arch backend installed (and possibly configured by environment variables, like TLA or ARCH_BACKEND), needed for this perl library to function.
run_tlasubcommand_with_args
run_tlasubcommand arg ...-
Run the given tla subcommand with optional arguments. Return the tla output in the scalar context, and a list of
chomp-ed lines in the list context.
run_cmdshell_command_with_args
run_cmdshell_command arg ...-
Run the given shell command (like wc or awk) with optional arguments. Return the command output in the scalar context, and a list of
chomp-ed lines in the list context.run_tlais implemented usingrun_cmd.
run_pipe_fromshell_command_with_args
run_pipe_fromshell_command arg ...-
Run the given shell command (like ls or tar) with optional arguments in the separate process. Return the pipe (file handle) that may be used to read the command output from.
run_cmdis implemented usingrun_pipe_from.
load_filefile_name
load_filefile_name scalar_ref
load_filefile_name array_ref-
Load the given file_name. Return the file content if the returning value is expected. As a side effect, may modify the scalar_ref or array_ref if given, in the last case all file lines are split and
chomp-ed.
save_filefile_name content-
Save the given content in the given file_name. The content may be either scalar, scalar ref, or array ref (see
load_file).
copy_dirdir1 dir2-
Copy dir1 to dir2 recursivelly, preserving as many attributes as possible.
remove_dirdir ..-
Remove dir (or dirs) recusivelly. Please be careful.
setup_config_dir
setup_config_dirdir
setup_config_dirdir subdir ...-
Create (if needed) the configuration dir that defaults to either
$ARCH_MAGIC_DIRor ~/.arch-magic or /tmp/.arch-magic if$HOMEis unset.If one or more consecutive subdir given, repeat the same procedure for the sub-directory (including creating and diagnostics if needed).
Return a name of the existing directory (including sub-directories if any).
standardize_datedefault_unix_date_string-
Try to convert the given date string to "yyyy-mm-dd HH:MM:SS TMZ". If failed, the original string is returned.
date2daysagodate_string-
Convert a date string to time difference to now in full days.
In list content, return (num_days_ago, unix_time, timezone_str).
date2agedate_string-
Like
date2daysago, but return a human readable string, like "5 days" or "-6 weeks" or "7 months" or "3 years".
parse_creator_emailmy_id-
Try to parse the arch
my-idof the patch creator. Return a list of his/her name and email.
adjacent_revisionfull_revision offset-
Given the full_revision and positive or negative offset, try to guess the full name of the adjacent revision.
Releases
8 releases since Debian 4.0 (Etch); the text changed 3 times.