NAME

Arch::Backend - Arch backend feature specific functions


SYNOPSIS

    use Arch::Backend qw(arch_backend is_baz has_file_diffs_cmd);
    my $exe = arch_backend();
    print "Not in tree, try '$exe init-tree'\n";
    my $version = Arch::Backend::arch_backend_version;
    print "Using baz $version as a backend\n" if is_baz();
    my $cmd = has_file_diffs_cmd()
        ? "file-diffs"
        : "file-diff";
    Arch::Util::run_tla($cmd, $filename);


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 to query certain aspects (like incompatible features) of the actual arch backend used.


FUNCTIONS

The following functions are available:

arch_backend, arch_backend_name, arch_backend_version, is_baz, is_tla, has_archive_setup_cmd, has_file_diffs_cmd, has_register_archive_name_arg, has_tree_version_dir_opt, has_tree_id_cmd, has_set_tree_version_cmd, has_cache_feature, get_cache_config.

arch_backend [exe]
Return or set the arch backend executable, like ``/opt/bin/tla'' or ``baz-1.3''.

By default, the arch backend executable is taken from environment variable $ARCH_BACKEND (or $TLA, or $BAZ). If no environment variable is set, then ``tla'' is used.

arch_backend_name
Return the brand name of the arch backend, ``tla'' or ``baz''.

arch_backend_version
Return the arch backend version, like ``1.3.1''.

is_tla
Return true if arch_backend_name is ``tla''.

is_baz
Return true if arch_backend_name is ``baz''.

has_archive_setup_cmd
Return true if the arch backend has ``archive-setup'' command. baz removed this command.

has_file_diffs_cmd
Return true if the arch backend has ``file-diffs'' command. It was renamed to ``file-diff'' in tla-1.3.

has_register_archive_name_arg
Return true if the arch backend's ``register-archive'' command supports two positional arguments, one of which is archive name. baz-1.3 removed such syntax; the previous baz versions supported this syntax, but it was useless, since the archive was accessed anyway.

has_tree_version_dir_opt
Return true if the arch backend's ``tree-version'' command supports ``-d'' options. This is true for baz.

has_tree_id_cmd
Return true if the arch backend has ``tree-id'' command. This is true for baz.

has_set_tree_version_cmd
Return true if the arch backend has ``set-tree-version'' command. baz removed this command and merged it into ``tree-version''.

has_cache_feature
Return true if the arch backend supports Arch Cache feature. This is true for baz.

get_cache_config
Return hash with the following keys: dir - directory of the local cache (or undef if not applicable).

has_commit_version_arg
Return true if the arch backend's ``commit'' command supports version argument. baz-1.4 removed this functionality.

has_commit_files_separator
Return true if the arch backend's ``commit'' command requires ``--'' argument to separate files. baz-1.4 removed this separator.

has_revlib_patch_set_dir
Return true if the arch backend's creates ,,patch-set subdirectory in revision library. baz-1.4 removed this functionality.


BUGS

This module uses heuristics and does not (intend to) provide the perfect information. Requires constant updating.


AUTHORS

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


SEE ALSO

For more information, see tla, baz, Arch.