Provided by: libarch-perl_0.5.2-2_all bug


       Arch::Util - Arch utility functions


           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);


       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.


       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,

       The system functions die on errors.

           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_tla subcommand_with_args
       run_tla subcommand 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_cmd shell_command_with_args
       run_cmd shell_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

           run_tla is implemented using run_cmd.

       run_pipe_from shell_command_with_args
       run_pipe_from shell_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

           run_cmd is implemented using run_pipe_from.

       load_file file_name
       load_file file_name scalar_ref
       load_file file_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_file file_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_dir dir1 dir2
           Copy dir1 to dir2 recursivelly, preserving as many attributes as possible.

       remove_dir dir ..
           Remove dir (or dirs) recusivelly. Please be careful.

       setup_config_dir dir
       setup_config_dir dir subdir ...
           Create (if needed) the configuration dir that defaults to either $ARCH_MAGIC_DIR or
           ~/.arch-magic or /tmp/.arch-magic if $HOME is 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_date default_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.

       date2daysago date_string
           Convert a date string to time difference to now in full days.

           In list content, return (num_days_ago, unix_time, timezone_str).

       date2age date_string
           Like date2daysago, but return a human readable string, like "5 days" or "-6 weeks" or
           "7 months" or "3 years".

       parse_creator_email my_id
           Try to parse the arch my-id of the patch creator. Return a list of his/her name and

       adjacent_revision full_revision offset
           Given the full_revision and positive or negative offset, try to guess the full name of
           the adjacent revision.


       Awaiting for your reports.


       Mikhael Goikhman (


       For more information, see tla, Arch.