.\" Automatically generated by Pod::Man 2.28 (Pod::Simple 3.28) .\" .\" 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 turned on, 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 "Module::Build::CipUX 3pm" .TH Module::Build::CipUX 3pm "2015-07-24" "perl v5.20.2" "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" Module::Build::CipUX \- Extension for building CipUX .SH "VERSION" .IX Header "VERSION" This document describes Module::Build::CipUX version 0.4.0 .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& use Module::Build::CipUX; \& \& my $build = Module::Build::CipUX\->new( \& module_name => \*(Aqxxxx\*(Aq, \& license => \*(Aqgpl\*(Aq, \& ... \& cipux_paths => { \& \*(Aqschema\*(Aq => q(/etc/ldap/schema), \& \*(Aqsetup\*(Aq => q(/etc/cipux/setup), \& }, \& # cipux_schema => [ glob(\*(Aqextras/*.schema\*(Aq) ], \& # cipux_setup => [ glob(\*(Aqextras/*.setup\*(Aq) ], \& \& # build target \& schema_files => { \& \*(Aqetc/ldap/schema/cipux.schema\*(Aq => \*(Aqschema/cipux.schema\*(Aq, \& }, \& setup_files => { \& \*(Aqetc/cipux/setup/courier.schema\*(Aq => \*(Aqsetup/courier.schema\*(Aq, \& \*(Aqetc/cipux/setup/debian\-cipux.conf\*(Aq => \*(Aqsetup/debian\-cipux.conf\*(Aq, \& \*(Aqetc/cipux/setup/debian\-edu\-cipux.conf\*(Aq => \*(Aqsetup/debian\-edu\-cipux.conf\*(Aq, \& \*(Aqetc/cipux/setup/debian\-edu\-ldap.acl\*(Aq => \*(Aqsetup/debian\-edu\-ldap.acl\*(Aq, \& \*(Aqetc/cipux/setup/debian\-edu\-ldap.ldif\*(Aq => \*(Aqsetup/debian\-edu\-ldap.ldif\*(Aq, \& \*(Aqetc/cipux/setup/debian\-ldap.acl\*(Aq => \*(Aqsetup/debian\-ldap.acl\*(Aq, \& \*(Aqetc/cipux/setup/debian\-ldap.ldif\*(Aq => \*(Aqsetup/debian\-ldap.ldif\*(Aq, \& \*(Aqetc/cipux/setup/lis.schema\*(Aq => \*(Aqsetup/lis.schema\*(Aq, \& }, \& \& ); \& \& my $elem_ar = $builder\->get_all_elements; \& foreach my $e (@{$elem_ar}){ \& $builder\->add_build_element($e); \& } \& \& $build\->create_build_script(); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" The goal of this module is build and install CipUX plugins in Perl and also handle CipUX core modules, subclassing the Module::Build and adding some extra funtionalities to it. .PP For a description of the interface see Module::Build::API. .PP This is a list of new parameters in the Module::Build::new method: .PP cipux_paths .PP .Vb 1 \& Define the install paths of the components using a hash with the following keys: \& \& setup \& \& The default value is /etc/cipux/setup. \& \& schema \& \& The default value is /etc/ldap/schema. .Ve .PP cipux_setup .PP .Vb 1 \& List of setup files to install. .Ve .PP cipux_schema .PP .Vb 1 \& List of LDAP schema files to install. .Ve .SH "INTERFACE" .IX Header "INTERFACE" .IP "cipuxrelease" 4 .IX Item "cipuxrelease" .Vb 1 \& [version 0.1.0] \& \& Make a cipux release tarball .Ve .SH "CONSTRUCTOR" .IX Header "CONSTRUCTOR" .SS "new" .IX Subsection "new" New inscance of Module::Build::CipUX. .PP .Vb 1 \& my $build = Module::Build::CipUX\->new(); .Ve .SH "SUBROUTINES/METHODS" .IX Header "SUBROUTINES/METHODS" .ie n .SS "ACTION_cipuxpo2mo( @params )" .el .SS "ACTION_cipuxpo2mo( \f(CW@params\fP )" .IX Subsection "ACTION_cipuxpo2mo( @params )" Build action which converts *.po files to *.mo files using gettext. .ie n .SS "ACTION_cipuxrelease( @params )" .el .SS "ACTION_cipuxrelease( \f(CW@params\fP )" .IX Subsection "ACTION_cipuxrelease( @params )" Build a simple CipUX release tarball. .ie n .SS "_get_prop( $self )" .el .SS "_get_prop( \f(CW$self\fP )" .IX Subsection "_get_prop( $self )" Returns private properties from the hash in Build.PL. This was inspired by Module::Build::IkiWiki. This violates ProhibitAccessOfPrivateData. If someone knows how to do better, drop a mail to cipux-devel mailing list. .ie n .SS "$cipux_elements_ar = \fIget_all_elements()\fP" .el .SS "\f(CW$cipux_elements_ar\fP = \fIget_all_elements()\fP" .IX Subsection "$cipux_elements_ar = get_all_elements()" Retrieve all elements and return a array reference to it. .PP .Vb 1 \& $cipux_elements_ar = get_all_elements(); .Ve .SS "\fIadd_all_elements()\fP" .IX Subsection "add_all_elements()" Call get_all_elements and add all elements to the build list by add_build_element. .ie n .SS "$results_hr = search_files({ \s-1PARAM \s0})" .el .SS "\f(CW$results_hr\fP = search_files({ \s-1PARAM \s0})" .IX Subsection "$results_hr = search_files({ PARAM })" \&\s-1PARAM: \s0 source_prefix # cgi source_extension # pl destination_prefix # webcgi destination_extension # cgi verbose # 1|0 .PP Search a given directory for files of given extension, change the extension and construct a new path with the file name. It returns a hash reference. .SS "var_dump({ \s-1PARAM \s0})" .IX Subsection "var_dump({ PARAM })" \&\s-1PARAM: \s0 var_r (mandatory) reference to variable name (mandatory) name of variable file (optional) filename if wish is to dump to file fh (optional) if not defined *STDOUT; other file handle or handle .PP Dump a variable to \s-1STDOUT.\s0 Or if parameter is given, dump it to a file or to another location given by a handle. .ie n .SS "$files_hr = \fIfind_bin750_files()\fP" .el .SS "\f(CW$files_hr\fP = \fIfind_bin750_files()\fP" .IX Subsection "$files_hr = find_bin750_files()" Find all files for mode 750 and return hash reference. Uses find_files_by_element. .SS "\fIprocess_bin750_files()\fP" .IX Subsection "process_bin750_files()" Process files. .ie n .SS "$files_hr = \fIfind_bin755_files()\fP" .el .SS "\f(CW$files_hr\fP = \fIfind_bin755_files()\fP" .IX Subsection "$files_hr = find_bin755_files()" Find all files for mode 755 and return hash reference. Uses find_files_by_element. .SS "process_bin755_files" .IX Subsection "process_bin755_files" Process files. .ie n .SS "$files_hr = \fIfind_sbin750_files()\fP" .el .SS "\f(CW$files_hr\fP = \fIfind_sbin750_files()\fP" .IX Subsection "$files_hr = find_sbin750_files()" Find all files for mode 750 and return hash reference. Uses find_files_by_element. .SS "process_sbin750_files" .IX Subsection "process_sbin750_files" Process files. .ie n .SS "$files_hr = \fIfind_sbin755_files()\fP" .el .SS "\f(CW$files_hr\fP = \fIfind_sbin755_files()\fP" .IX Subsection "$files_hr = find_sbin755_files()" Find all files for mode 755 and return hash reference. Uses find_files_by_element. .SS "process_sbin755_files" .IX Subsection "process_sbin755_files" Process files. .ie n .SS "$files_hr = \fIfind_webcgi_files()\fP" .el .SS "\f(CW$files_hr\fP = \fIfind_webcgi_files()\fP" .IX Subsection "$files_hr = find_webcgi_files()" Find all files for element webcgi and return hash reference. Uses find_files_by_element. .SS "process_webcgi_files" .IX Subsection "process_webcgi_files" Process files. .ie n .SS "$files_hr = \fIfind_initscript_files()\fP" .el .SS "\f(CW$files_hr\fP = \fIfind_initscript_files()\fP" .IX Subsection "$files_hr = find_initscript_files()" Find all files for element initscript and return hash reference. Uses find_files_by_element. .SS "process_initscript_files" .IX Subsection "process_initscript_files" Process files. .ie n .SS "$files_hr = \fIfind_conf644_files()\fP" .el .SS "\f(CW$files_hr\fP = \fIfind_conf644_files()\fP" .IX Subsection "$files_hr = find_conf644_files()" Find all files for element conf644 and return hash reference. Uses find_files_by_element. .SS "process_conf644_files" .IX Subsection "process_conf644_files" Process files. .ie n .SS "$files_hr = \fIfind_conf600_files()\fP" .el .SS "\f(CW$files_hr\fP = \fIfind_conf600_files()\fP" .IX Subsection "$files_hr = find_conf600_files()" Find all files for element conf600 and return hash reference. Uses find_files_by_element. .SS "process_conf600_files" .IX Subsection "process_conf600_files" Process files. .SS "find_bootcfg_files" .IX Subsection "find_bootcfg_files" Find files. .SS "process_bootcfg_files" .IX Subsection "process_bootcfg_files" Process files. .SS "find_bootcfgobject_files" .IX Subsection "find_bootcfgobject_files" Find files. .SS "find_bootcfgstorage_files" .IX Subsection "find_bootcfgstorage_files" Find files. .SS "find_bootcfgaccess_files" .IX Subsection "find_bootcfgaccess_files" Find files. .SS "find_bootcfgtask_files" .IX Subsection "find_bootcfgtask_files" Find files. .SS "process_bootcfgobject_files" .IX Subsection "process_bootcfgobject_files" Process files. .SS "process_bootcfgstorage_files" .IX Subsection "process_bootcfgstorage_files" Process files. .SS "process_bootcfgaccess_files" .IX Subsection "process_bootcfgaccess_files" Process files. .SS "process_bootcfgtask_files" .IX Subsection "process_bootcfgtask_files" Process files. .ie n .SS "$files_hr = \fIfind_locale_files()\fP" .el .SS "\f(CW$files_hr\fP = \fIfind_locale_files()\fP" .IX Subsection "$files_hr = find_locale_files()" Find all files for element locale and return hash reference. Uses find_files_by_element. .SS "process_locale_files" .IX Subsection "process_locale_files" Process files. .ie n .SS "$files_hr|undef = find_files_by_element( { element=>$element } )" .el .SS "\f(CW$files_hr\fP|undef = find_files_by_element( { element=>$element } )" .IX Subsection "$files_hr|undef = find_files_by_element( { element=>$element } )" Add \f(CW$element\fR . '_files' to include list. Returns reference to hash of all files in that directory if the directory exists; otherwise returns undef .ie n .SS "@files = process_files_element( { element=>$element } )" .el .SS "\f(CW@files\fP = process_files_element( { element=>$element } )" .IX Subsection "@files = process_files_element( { element=>$element } )" Execute find_${elelemt}_files method. Returns list of files for trivial files. For non-trivial files it does...: .PP General: .PP .Vb 5 \& make a path \& skip .svn dirs \& change extension for some files, copy otherwise \& make some files executable \& change some modes .Ve .PP \&\s-1PO:\s0 .PP .Vb 4 \& check number of *.pot files \& identify the *.pot file \& build file name from *.pot file for *.mo file \& build *.mo file from *.po file with msgfmt .Ve .SH "DIAGNOSTICS" .IX Header "DIAGNOSTICS" Error messages are from the base class. This package generates no exceptions. .ie n .IP """Couldn\*(Aqt mkdir $podir: $!"";""" 4 .el .IP "\f(CWCouldn\*(Aqt mkdir $podir: $!"";\fR" 4 .IX Item "Couldnt mkdir $podir: $!"";" Occurs if it is not possible to make a directory in blib/po .SH "CONFIGURATION AND ENVIRONMENT" .IX Header "CONFIGURATION AND ENVIRONMENT" Module::Build::CipUX requires no configuration files or environment variables. .SH "DEPENDENCIES" .IX Header "DEPENDENCIES" Module::Build .SH "INCOMPATIBILITIES" .IX Header "INCOMPATIBILITIES" None reported. .SH "BUGS AND LIMITATIONS" .IX Header "BUGS AND LIMITATIONS" No bugs have been reported. .PP Please report any bugs or feature requests to \&\f(CW\*(C`bug\-module\-build\-cipux@rt.cpan.org\*(C'\fR, or through the web interface at . .SH "AUTHOR" .IX Header "AUTHOR" Christian Kuelker \f(CW\*(C`\*(C'\fR .SH "LICENSE AND COPYRIGHT" .IX Header "LICENSE AND COPYRIGHT" Copyright (C) 2008 \- 2009, Christian Kuelker \&\f(CW\*(C`\*(C'\fR. All rights reserved. .PP This program is free software; you can redistribute it and/or modify it under the terms of the \s-1GNU\s0 General Public License as published by the Free Software Foundation; either version 2 of the License or any later version. .PP This program is distributed in the hope that it will be useful, but \s-1WITHOUT ANY WARRANTY\s0; without even the implied warranty of \s-1MERCHANTABILITY\s0 or \s-1FITNESS FOR A PARTICULAR PURPOSE.\s0 See the \s-1GNU\s0 General Public License for more details. .PP You should have received a copy of the \s-1GNU\s0 General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, \s-1MA 02110\-1301 USA.\s0 .SH "DISCLAIMER OF WARRANTY" .IX Header "DISCLAIMER OF WARRANTY" \&\s-1BECAUSE THIS SOFTWARE IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE SOFTWARE, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE SOFTWARE \*(L"AS IS\*(R" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE IS WITH YOU. SHOULD THE SOFTWARE PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR, OR CORRECTION.\s0 .PP \&\s-1IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE SOFTWARE AS PERMITTED BY THE ABOVE LICENCE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE SOFTWARE \s0(\s-1INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE SOFTWARE TO OPERATE WITH ANY OTHER SOFTWARE\s0), \&\s-1EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.\s0