.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Lintian::Lab 3" .TH Lintian::Lab 3 "2019-05-26" "Lintian v2.15.0" "Debian Package Checker" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Lintian::Lab \-\- Interface to the Lintian Lab .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& use Lintian::Lab; \& \& my $lab = Lintian::Lab\->new; \& \& if (!$lab\->exists) { \& $lab\->create; \& } \& $lab\->open; \& $lab\->close; .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" This module provides an abstraction from \*(L"How and where\*(R" packages are placed. It handles creation and deletion of the Lintian Lab itself as well as providing access to the entries. .SH "CLASS METHODS" .IX Header "CLASS METHODS" .IP "new" 4 .IX Item "new" Creates a new Lab instance. The lab will be temporary and will point to a temporary directory. .SH "INSTANCE METHODS" .IX Header "INSTANCE METHODS" .IP "is_open" 4 .IX Item "is_open" Returns a truth value if this lab is open. .Sp Note: If the lab is open, it also exists. However, if the lab is closed then the lab may or may not exist (see \*(L"exists\*(R"). .IP "exists" 4 .IX Item "exists" Returns a truth value if the instance points to an existing lab. .Sp Note: This never implies that the lab is open. Though it may imply the lab is closed (see \*(L"is_open\*(R"). .IP "get_package (\s-1PROC\s0)" 4 .IX Item "get_package (PROC)" Fetches an existing package from the lab. .Sp The first argument must be a processable. .IP "create ([\s-1OPTS\s0])" 4 .IX Item "create ([OPTS])" Creates a basic empty lab. Will also set up the temporary dir for the lab. .Sp The lab will \fInot\fR be opened by this method. This should be done afterwards by invoking the \*(L"open\*(R" method. .Sp \&\s-1OPTS\s0 (if present) is a hashref containing options. The following options are accepted: .RS 4 .IP "keep-lab" 4 .IX Item "keep-lab" If \*(L"keep-lab\*(R" points to a truth value the temporary directory will \&\fInot\fR be removed by closing the lab (nor exiting the application). However, explicitly calling \*(L"remove\*(R" will remove the lab. .IP "mode" 4 .IX Item "mode" If present, this will be used as mode for creating directories. Will default to 0777 if not specified. It is passed to mkdir and is thus subject to umask settings. .RE .RS 4 .Sp Note: This does nothing if the lab appears to already exists. .RE .IP "open" 4 .IX Item "open" Opens the lab and reads the contents into caches. If the lab does not exist, this method will call create to initialize it. .Sp This will croak if the lab is already open. It may also croak for the same reasons as \*(L"create\*(R". .Sp Note: It is not possible to pass options to the creation of the lab. If special options are required, please use \&\*(L"create\*(R" directly. .IP "close" 4 .IX Item "close" Close the lab \- the lab can no longer be used. All references to entries in the lab should be considered invalid. .Sp Note: The lab will be deleted unless it was created with \*(L"keep-lab\*(R" (see \*(L"create\*(R"). .IP "remove" 4 .IX Item "remove" Removes the lab and everything in it. Any reference to an entry returned from this lab will immediately become invalid. .Sp The lab root dir will be removed as well on success. .Sp On success, this will return a truth value. The directory path will be set to the empty string. .Sp On error, this method will croak. .Sp If the lab has already been removed (or does not exist), this will return a truth value. .SH "AUTHOR" .IX Header "AUTHOR" Niels Thykier .PP Based on the work of various others.