Arch::Inventory3pm
Class representing a tree inventory
Usage
use Arch::Inventory qw(:category :type);my $inv = Arch::Inventory->new; # use cwdprint Arch::Inventory->to_string($inv->get_root_entry), "\n";print $inv->get_listing;
or (most commonly):
use Arch::Tree;my $tree = Arch::Tree->new;my $inv = $tree->get_inventory;print $inv->get_listing;
Overview
Arch::Inventory generates a tree inventory.
An inventory is a tree structure of elements, each representing a single directory entry of the source tree. Each inventory entry is described by an hash with the following fields:
category-
The classification of the tree element.
categorycan be one of TREE, SOURCE, PRECIOUS, BACKUP or JUNK.
untagged-
A boolean value indicating whether the element was first classified as SOURCE but lacked an inventory id.
type-
The tree element type.
typecan be one of FILE, DIRECTORY or SYMLINK.
path-
The complete path to the tree element relative to the inventory base directory.
id-
The elements inventory id. May be
"undef".
children-
A hash of the elements direct children, idexed by their last path element.
This field exists for elements of type DIRECTORY only.
The category and type constants can be conveniently imported using the tags ":category" and ":type".
use Arch::Inventory qw(:category :type);
Methods
The following methods are available:
new, directory, get_root_entry, get_entry, get_listing, annotate_fs, foreach, dump, to_string.
new[$dir]-
Create an inventory for $dir or the current directory if $dir is not specified.
directory-
Returns the inventories base directory as passed to
new.
get_root_entry-
Returns the inventory element for the base directory.
The root entry always has the following properties:
$root = {category => TREE, # if {arch} exists, SOURCE otherwiseuntagged => 1,type => DIRECTORY,path => '',id => undef,children => { ... },}
get_entry$path
get_entry@path_elements-
Returns the inventory element for the specified path. The path may either be given as a single string or as a list of path elements.
If the element does not exist
"undef"is returned.Using an empty or no path is equivalent to calling
get_root_entry.
get_listing-
Generates a textual inventory listing equivalent to the output of
tla inventory -tspbju -B --kind --ids --untaggedNote:The output order is not equivalent to tla. Instead of strict ASCII order of path names, a directory entry is always directly followed by its child entries. Entries with the same parent entry are ASCII ordered.
annotate_fs
annotate_fs$entry-
Add filesystem information to $entry or every inventory entry if none is provided. This adds the fields
statandsymlinkto the annotated entries which contain the output oflstatandreadlinkrespectively.
foreach$coderef-
Execute $coderef for every inventory entry, passing the entry as
$_[0].
dump-
Generates a dump of the inventory structure using Data::Dumper.
to_string$inventory_element-
Generates an inventory line for the inventory element as produced by tla.
Releases
8 releases since Debian 4.0 (Etch); the text changed 3 times.