logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Arch::Util - Arch utility functions

Authors

       Mikhael Goikhman (migo@homemail.com--Perl-GPL/arch-perl--devel).

Bugs

       Awaiting for your reports.

Description

       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_argsrun_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_argsrun_cmdshell_commandarg ...
           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_tla is implemented using run_cmd.

       run_pipe_fromshell_command_with_argsrun_pipe_fromshell_commandarg ...
           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_cmd is implemented using run_pipe_from.

       load_filefile_nameload_filefile_namescalar_refload_filefile_namearray_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_namecontent
           Save the given content in the given file_name. The content may be either scalar, scalar ref, or array
           ref (see load_file).

       copy_dirdir1dir2
           Copy dir1 to dir2 recursivelly, preserving as many attributes as possible.

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

       setup_config_dirsetup_config_dirdirsetup_config_dirdirsubdir ...
           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_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 archmy-id of the patch creator. Return a list of his/her name and email.

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

Name

       Arch::Util - Arch utility functions

See Also

       For more information, see tla, Arch.

perl v5.20.2                                       2010-03-08                                    Arch::Util(3pm)

Synopsis

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

See Also