.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" 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 .\" ======================================================================== .\" .IX Title "Rex::Commands::PkgConf 3pm" .TH Rex::Commands::PkgConf 3pm "2023-08-09" "perl v5.36.0" "User Contributed Perl Documentation" .\" 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" Rex::Commands::PkgConf \- Configure packages .SH "DESCRIPTION" .IX Header "DESCRIPTION" With this module you can configure packages. Currently it only supports Debian (using debconf), but it is designed to be extendable. .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 2 \& my %options = get_pkgconf(\*(Aqpostfix\*(Aq); \& say $options{\*(Aqpostfix/relayhost\*(Aq}\->{value}; \& \& # Only obtain one value \& my %options = get_pkgconf(\*(Aqpostfix\*(Aq, \*(Aqpostfix/relayhost\*(Aq); \& say $options{\*(Aqpostfix/relayhost\*(Aq}\->{value}; \& \& # Set options \& set_pkgconf("postfix", [ \& {question => \*(Aqchattr\*(Aq, type => \*(Aqboolean\*(Aq, value => \*(Aqfalse\*(Aq}, \& {question => \*(Aqrelayhost\*(Aq, type => \*(Aqstring\*(Aq, value => \*(Aqrelay.example.com\*(Aq}, \& ]); \& \& # Don\*(Aqt update if it\*(Aqs already set \& set_pkgconf("mysql\-server\-5.5", [ \& {question => \*(Aqmysql\-server/root_password\*(Aq, type => \*(Aqstring\*(Aq, value => \*(Aqmysecret\*(Aq}, \& {question => \*(Aqmysql\-server/root_password_again\*(Aq, type => \*(Aqstring\*(Aq, value => \*(Aqmysecret\*(Aq}, \& ], no_update => 1); .Ve .SH "EXPORTED FUNCTIONS" .IX Header "EXPORTED FUNCTIONS" .SS "get_pkgconf($package, [$question])" .IX Subsection "get_pkgconf($package, [$question])" Use this to query existing package configurations. .PP Without a question specified, it will return all options for the specified package as a hash. .PP With a question specified, it will return only that option .PP Each question is returned with the question as the key, and the value as a hashref. The hashref contains the keys: question, value and already_set. already_set is true if the question has already been answered. .PP .Vb 5 \& # Only obtain one value \& my %options = get_pkgconf(\*(Aqpostfix\*(Aq, \*(Aqpostfix/relayhost\*(Aq); \& say $options{\*(Aqpostfix/relayhost\*(Aq}\->{question}; \& say $options{\*(Aqpostfix/relayhost\*(Aq}\->{value}; \& say $options{\*(Aqpostfix/relayhost\*(Aq}\->{already_set}; .Ve .ie n .SS "set_pkgconf($package, $values, [%options])" .el .SS "set_pkgconf($package, \f(CW$values\fP, [%options])" .IX Subsection "set_pkgconf($package, $values, [%options])" Use this to set package configurations. .PP At least the package name and values must be specified. Values must be an array ref, with each item containing a hashref with the attributes specified that are required by the package configuration program. .PP For example, for debconf, this must be the question, the type and answer. In this case, the types can be any accetable debconf type: string, boolean, select, multiselect, note, text, password. .PP Optionally the option \*(L"no_update\*(R" may be true, in which case the question will not be updated if it has already been set. .PP See the synopsis for examples.