%!PS-Adobe-3.0
%%Creator: groff version 1.22.4
%%CreationDate: Thu Aug 20 11:08:46 2020
%%DocumentNeededResources: font Times-Roman
%%+ font Times-Bold
%%+ font Courier
%%DocumentSuppliedResources: procset grops 1.22 4
%%Pages: 4
%%PageOrder: Ascend
%%DocumentMedia: Default 612 792 0 () ()
%%Orientation: Portrait
%%EndComments
%%BeginDefaults
%%PageMedia: Default
%%EndDefaults
%%BeginProlog
%%BeginResource: procset grops 1.22 4
%!PS-Adobe-3.0 Resource-ProcSet
/setpacking where{
pop
currentpacking
true setpacking
}if
/grops 120 dict dup begin
/SC 32 def
/A/show load def
/B{0 SC 3 -1 roll widthshow}bind def
/C{0 exch ashow}bind def
/D{0 exch 0 SC 5 2 roll awidthshow}bind def
/E{0 rmoveto show}bind def
/F{0 rmoveto 0 SC 3 -1 roll widthshow}bind def
/G{0 rmoveto 0 exch ashow}bind def
/H{0 rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
/I{0 exch rmoveto show}bind def
/J{0 exch rmoveto 0 SC 3 -1 roll widthshow}bind def
/K{0 exch rmoveto 0 exch ashow}bind def
/L{0 exch rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
/M{rmoveto show}bind def
/N{rmoveto 0 SC 3 -1 roll widthshow}bind def
/O{rmoveto 0 exch ashow}bind def
/P{rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
/Q{moveto show}bind def
/R{moveto 0 SC 3 -1 roll widthshow}bind def
/S{moveto 0 exch ashow}bind def
/T{moveto 0 exch 0 SC 5 2 roll awidthshow}bind def
/SF{
findfont exch
[exch dup 0 exch 0 exch neg 0 0]makefont
dup setfont
[exch/setfont cvx]cvx bind def
}bind def
/MF{
findfont
[5 2 roll
0 3 1 roll
neg 0 0]makefont
dup setfont
[exch/setfont cvx]cvx bind def
}bind def
/level0 0 def
/RES 0 def
/PL 0 def
/LS 0 def
/MANUAL{
statusdict begin/manualfeed true store end
}bind def
/PLG{
gsave newpath clippath pathbbox grestore
exch pop add exch pop
}bind def
/BP{
/level0 save def
1 setlinecap
1 setlinejoin
DEFS/BPhook known{DEFS begin BPhook end}if
72 RES div dup scale
LS{
90 rotate
}{
0 PL translate
}ifelse
1 -1 scale
}bind def
/EP{
level0 restore
showpage
}def
/DA{
newpath arcn stroke
}bind def
/SN{
transform
.25 sub exch .25 sub exch
round .25 add exch round .25 add exch
itransform
}bind def
/DL{
SN
moveto
SN
lineto stroke
}bind def
/DC{
newpath 0 360 arc closepath
}bind def
/TM matrix def
/DE{
TM currentmatrix pop
translate scale newpath 0 0 .5 0 360 arc closepath
TM setmatrix
}bind def
/RC/rcurveto load def
/RL/rlineto load def
/ST/stroke load def
/MT/moveto load def
/CL/closepath load def
/Fr{
setrgbcolor fill
}bind def
/setcmykcolor where{
pop
/Fk{
setcmykcolor fill
}bind def
}if
/Fg{
setgray fill
}bind def
/FL/fill load def
/LW/setlinewidth load def
/Cr/setrgbcolor load def
/setcmykcolor where{
pop
/Ck/setcmykcolor load def
}if
/Cg/setgray load def
/RE{
findfont
dup maxlength 1 index/FontName known not{1 add}if dict begin
{
1 index/FID ne
2 index/UniqueID ne
and
{def}{pop pop}ifelse
}forall
/Encoding exch def
dup/FontName exch def
currentdict end definefont pop
}bind def
/DEFS 0 def
/EBEGIN{
moveto
DEFS begin
}bind def
/EEND/end load def
/CNT 0 def
/level1 0 def
/PBEGIN{
/level1 save def
translate
div 3 1 roll div exch scale
neg exch neg exch translate
0 setgray
0 setlinecap
1 setlinewidth
0 setlinejoin
10 setmiterlimit
[]0 setdash
/setstrokeadjust where{
pop
false setstrokeadjust
}if
/setoverprint where{
pop
false setoverprint
}if
newpath
/CNT countdictstack def
userdict begin
/showpage{}def
/setpagedevice{}def
mark
}bind def
/PEND{
cleartomark
countdictstack CNT sub{end}repeat
level1 restore
}bind def
end def
/setpacking where{
pop
setpacking
}if
%%EndResource
%%EndProlog
%%BeginSetup
%%BeginFeature: *PageSize Default
<< /PageSize [ 612 792 ] /ImagingBBox null >> setpagedevice
%%EndFeature
%%IncludeResource: font Times-Roman
%%IncludeResource: font Times-Bold
%%IncludeResource: font Courier
grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72
def/PL 792 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron/Zcaron
/scaron/zcaron/Ydieresis/trademark/quotesingle/Euro/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar/percent
/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen
/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon
/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O
/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/circumflex
/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y
/z/braceleft/bar/braceright/tilde/.notdef/quotesinglbase/guillemotleft
/guillemotright/bullet/florin/fraction/perthousand/dagger/daggerdbl
/endash/emdash/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/hungarumlaut
/dotaccent/breve/caron/ring/ogonek/quotedblleft/quotedblright/oe/lslash
/quotedblbase/OE/Lslash/.notdef/exclamdown/cent/sterling/currency/yen
/brokenbar/section/dieresis/copyright/ordfeminine/guilsinglleft
/logicalnot/minus/registered/macron/degree/plusminus/twosuperior
/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior
/ordmasculine/guilsinglright/onequarter/onehalf/threequarters
/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE
/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn
/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla
/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis
/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash
/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]def
/Courier@0 ENC0/Courier RE/Times-Bold@0 ENC0/Times-Bold RE/Times-Roman@0
ENC0/Times-Roman RE
%%EndSetup
%%Page: 1 1
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF 124.535(Base\(3\) User)72 48 R(Contrib)2.5 E
(uted Perl Documentation)-.2 E(Base\(3\))127.035 E/F1 10.95/Times-Bold@0
SF -.219(NA)72 84 S(ME).219 E F0 .93
(ProjectBuilder::Base, part of the project\255b)108 96 R(uilder)-.2 E
(.or)-.55 E 3.429(g\255m)-.18 G .929
(odule dealing with generic functions suitable for)-3.429 F
(perl project de)108 108 Q -.15(ve)-.25 G(lopment).15 E F1(DESCRIPTION)
72 124.8 Q F0(This module pro)108 136.8 Q
(vides generic functions suitable for perl project de)-.15 E -.15(ve)
-.25 G(lopment).15 E F1(SYNOPSIS)72 153.6 Q/F2 10/Courier@0 SF
(use ProjectBuilder::Base;)120 165.6 Q(#)120 189.6 Q 6(#C)120 201.6 S
(reate a directory and its parents)-6 E(#)120 213.6 Q
(pb_mkdir_p\("/tmp/foo/bar"\);)120 225.6 Q(#)120 249.6 Q 6(#R)120 261.6
S(emove recursively a directory and its children)-6 E(#)120 273.6 Q
(pb_rm_rf\("/tmp/foo"\);)120 285.6 Q(#)120 309.6 Q 6(#E)120 321.6 S
(ncapsulate the system call for better output and return value test)-6 E
(#)120 333.6 Q(pb_system\("ls \255l", "Printing directory content"\);)
120 345.6 Q(#)120 369.6 Q 6(#A)120 381.6 S
(nalysis a URI and return its components in a table)-6 E(#)120 393.6 Q(\
my \($scheme, $account, $host, $port, $path\) = pb_get_uri\("svn+ssh://\
ac@my.server.org:port/path/to/dir"\);)120 405.6 Q(#)120 429.6 Q 6(#G)120
441.6 S(ives the current date in a table)-6 E(#)120 453.6 Q
(@date = pb_get_date\(\);)120 465.6 Q(#)120 489.6 Q 6(#M)120 501.6 S
(anages logs of the program)-6 E(#)120 513.6 Q
(pb_log_init\(2,\\*STDOUT\);)120 525.6 Q
(pb_log\(1,"Message to print\\n"\);)120 537.6 Q(#)120 561.6 Q 6(#M)120
573.6 S(anages content of a file)-6 E(#)120 585.6 Q
(pb_display_file\("/etc/passwd",\\*STDERR\);)120 597.6 Q
(my $cnt = pb_get_content\("/etc/passwd"\);)120 609.6 Q F1(USA)72 626.4
Q(GE)-.602 E/F3 10/Times-Bold@0 SF(pb_mkdir_p)108 638.4 Q F0
(Internal mkdir \255p function. F)128 650.4 Q
(orces mode to 755. Supports multiple parameters.)-.15 E
(Based on File::P)128 668.4 Q(ath mkpath.)-.15 E F3(pb_rm_rf)108 685.2 Q
F0(Internal rm \255rf function. Supports multiple parameters.)128 697.2
Q(Based on File::P)128 715.2 Q(ath rmtree.)-.15 E(perl v5.28.3)72 768 Q
203.17(2020-08-20 1)162.62 F 0 Cg EP
%%Page: 2 2
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF 124.535(Base\(3\) User)72 48 R(Contrib)2.5 E
(uted Perl Documentation)-.2 E(Base\(3\))127.035 E/F1 10/Times-Bold@0 SF
(pb_system)108 84 Q F0 2.083(Encapsulate the `)128 96 R(`system')-.74 E
4.583('c)-.74 G 2.084(all for better output and return v)-4.583 F 2.084
(alue test.)-.25 F 2.084(Needs a)7.084 F/F2 10/Courier@0 SF($ENV)4.584 E
F0({')A/F3 9/Times-Roman@0 SF(PBTMP)A F0('})A -.25(va)128 108 S 3.501
(riable which is created by calling the pb_mktemp_init function.).25 F
3.5(Needs pb_log support, so)8.501 F(pb_log_init should ha)128 120 Q .3
-.15(ve b)-.2 H(een called before.).15 E 1.224(The \214rst parameter is\
the shell command to call. This command should)128 138 R F3(NO)3.724 E
(T)-.36 E F0 1.224(use redirections.)3.724 F(The)6.224 E .014
(second parameter is the message to print on screen. If none is gi)128
150 R -.15(ve)-.25 G .014(n, then the command is printed.).15 F(The)
5.013 E .232
(third parameter prints the result of the command after correct e)128
162 R -.15(xe)-.15 G .232(cution if v).15 F .232(alue is `)-.25 F(`v)
-.74 E(erbose')-.15 E .232('. If v)-.74 F(alue)-.25 E .043(is `)128 174
R(`noredir')-.74 E .043(', it a)-.74 F -.2(vo)-.2 G .043
(ids redirecting outputs \(e.g. for vi\). If v).2 F .043(alue is `)-.25
F(`quiet')-.74 E .043(', doesn')-.74 F 2.543(tp)-.18 G .043(rint an)
-2.543 F .043(ything at all.)-.15 F 1.234(If v)128 186 R 1.234
(alue is `)-.25 F(`mayf)-.74 E(ail')-.1 E 1.234(', f)-.74 F 1.235
(ailure of the command is ok e)-.1 F -.15(ve)-.25 G 3.735(ni).15 G(f)
-3.735 E F2($Global::pb_stop_on_error)3.735 E F0(is)3.735 E 1.467
(set, because the caller will be handling the error)128 198 R 3.967(.A`)
-.55 G(`v)-4.707 E(erbose')-.15 E 3.967('c)-.74 G 1.466
(an be added to mayf)-3.967 F 1.466(ail to ha)-.1 F 1.766 -.15(ve i)-.2
H(t).15 E -.15(ex)128 210 S 1.439(plain wh).15 F 3.939(yi)-.05 G 3.939
(tf)-3.939 G 1.439(ailed. If v)-4.039 F 1.439(alue is v)-.25 F
(erbose_PREF)-.15 E 3.939(,t)-.8 G 1.439(hen e)-3.939 F -.15(ve)-.25 G
1.44(ry output command will be pre\214x).15 F 1.44(ed with)-.15 F F3
(PREF)128 222 Q(.)-.72 E F0
(This function returns as a result the return v)5 E
(alue of the system command.)-.25 E 2.279
(If no error reported, it prints)128 240 R F3(OK)4.779 E F0 2.279
(on the screen, just after the message. Else it prints the errors)4.779
F(generated.)128 252 Q F1(pb_get_uri)108 268.8 Q F0 .033(This function \
returns a list of 6 parameters indicating the protocol, account, passw)
128 280.8 R .034(ord, serv)-.1 F(er)-.15 E 2.534(,p)-.4 G .034(ort, and)
-2.534 F(path contained in the)128 292.8 Q F3(URI)2.5 E F0
(passed in parameter)2.5 E(.)-.55 E(A)128 310.8 Q F3(URI)2.5 E F0
(has the format protocol://[ac@]host[:port][path[?query][#fragment]].)
2.5 E(Cf man)128 328.8 Q F3(URI.)2.5 E F1(pb_get_date)108 345.6 Q F0
.855(This function returns a list of 9 parameters indicating the second\
s, minutes, hours, day)128 357.6 R 3.354(,m)-.65 G .854(onth, year)
-3.354 F(,)-.4 E(day in the week, day in the year)128 369.6 Q 2.5(,a)-.4
G(nd daylight sa)-2.5 E(ving time \215ag of the current time.)-.2 E
(Cf: man ctime and description of the struct tm.)128 387.6 Q F1
(pb_log_init)108 404.4 Q F0(This function initializes the global v)128
416.4 Q(ariables used by the pb_log function.)-.25 E .876
(The \214rst parameter is the deb)128 434.4 R .876(ug le)-.2 F -.15(ve)
-.25 G 3.376(lw).15 G .877
(hich will be considered during the run of the program?)-3.376 F(The)
5.877 E(second parameter is a pointer on a \214le descriptor used to pr\
int the log info.)128 446.4 Q .605(As an e)128 464.4 R .605
(xample, if you set the deb)-.15 F .605(ug le)-.2 F -.15(ve)-.25 G 3.105
(lt).15 G 3.105(o2)-3.105 G .604(in that function, e)-.001 F -.15(ve)
-.25 G .604(ry call to pb_log which contains a).15 F -.25(va)128 476.4 S
(lue less or equal than 2 will be printed. Calls with a v).25 E
(alue greater than 2 w)-.25 E(on')-.1 E 2.5(tb)-.18 G 2.5(ep)-2.5 G
(rinted.)-2.5 E .908(The call to)128 494.4 R F1(pb_log_init)3.408 E F0
.908(is typically done after getting a parameter on the)3.408 F F3(CLI)
3.409 E F0 .909(indicating the le)3.409 F -.15(ve)-.25 G 3.409(lo).15 G
(f)-3.409 E -.15(ve)128 506.4 S(rbosity e).15 E(xpected.)-.15 E F1
(pb_log)108 523.2 Q F0 .563(This function logs the messages passed as t\
he second parameter if the v)128 535.2 R .562
(alue passed as \214rst parameter)-.25 F(is lesser or equal than the v)
128 547.2 Q(alue passed to the)-.25 E F1(pb_log_init)2.5 E F0(function.)
2.5 E(Here is a usage e)128 565.2 Q(xample:)-.15 E F2
(pb_log_init\(2,\\*STDERR\);)140 583.2 Q
(pb_log\(1,"Hello World 1\\n"\);)140 595.2 Q
(pb_log\(2,"Hello World 2\\n"\);)140 607.2 Q
(pb_log\(3,"Hello World 3\\n"\);)140 619.2 Q(will print:)140 643.2 Q
(Hello World 1)140 667.2 Q(Hello World 2)140 679.2 Q F1
(pb_display_\214le)108 696 Q F0 .46
(This function prints the content of the \214le passed in parameter)128
708 R 5.461(.I)-.55 G 2.961(fas)-5.461 G .461(econd parameter is gi)
-2.961 F -.15(ve)-.25 G .461(n, this is).15 F .407
(the descriptor of the log\214le to write to in addtion to)128 720 R F3
(STDOUT)2.906 E(.)-.666 E F0 .406(If a third parameter is gi)5.406 F
-.15(ve)-.25 G .406(n, this is the).15 F(perl v5.28.3)72 768 Q 203.17
(2020-08-20 2)162.62 F 0 Cg EP
%%Page: 3 3
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF 124.535(Base\(3\) User)72 48 R(Contrib)2.5 E
(uted Perl Documentation)-.2 E(Base\(3\))127.035 E .571(pre\214x pro)128
84 R .571(viding it')-.15 F 3.071(sw)-.55 G .571(riten as v)-3.071 F
(erbose_PREF)-.15 E 3.071(.I)-.8 G 3.071(nw)-3.071 G .571(hich case the)
-3.071 F/F1 9/Times-Roman@0 SF(PREF)3.071 E F0 .572
(string will be added before the)3.071 F(line output.)128 96 Q
(This is a cat equi)128 114 Q -.25(va)-.25 G(lent function.).25 E/F2 10
/Times-Bold@0 SF(pb_get_content)108 130.8 Q F0
(This function returns the content of the \214le passed in parameter)128
142.8 Q(.)-.55 E F2(pb_set_content)108 159.6 Q F0 1.493
(This function put the content of a v)128 171.6 R 1.492
(ariable passed as second parameter into the \214le passed as \214rst)
-.25 F(parameter)128 183.6 Q(.)-.55 E F2(pb_exit)108 200.4 Q F0
(Fundtion to call before e)128 212.4 Q(xiting pb so cleanup is done)-.15
E F2(pb_syntax_init)108 229.2 Q F0
(This function initializes the global v)128 241.2 Q
(ariable used by the pb_syntax function.)-.25 E(The parameter is the me\
ssage string which will be printed when calling pb_syntax)128 259.2 Q F2
(pb_syntax)108 276 Q F0 .693(This function prints the syntax e)128 288 R
.693(xpected by the application, based on pod2usage, and e)-.15 F 3.194
(xits. The)-.15 F(\214rst)3.194 E 2.154(parameter is the return v)128
300 R 2.154(alue of the e)-.25 F 4.654(xit. The)-.15 F 2.154
(second parameter is the v)4.654 F 2.153(erbosity as e)-.15 F 2.153
(xpected by)-.15 F(pod2usage.)128 312 Q(Cf: man Pod::Usage)128 330 Q F2
(pb_temp_init)108 346.8 Q F0 1.377(This function initializes the en)128
358.8 R 1.377(vironemnt v)-.4 F(ariable)-.25 E F1(PBTMP)3.877 E F0 1.377
(to a random v)3.877 F 1.377(alue. This directory can be)-.25 F
(safely used during the whole program, it will be remo)128 370.8 Q -.15
(ve)-.15 G 2.5(da).15 G 2.5(tt)-2.5 G(he end automatically)-2.5 E(.)-.65
E F2(pb_get_osr)108 387.6 Q(elease)-.18 E F0
(This function returns the release of our operating system)128 399.6 Q
F2(pb_get_ar)108 416.4 Q(ch)-.18 E F0 1.923
(This function returns the architecture of our local en)128 428.4 R
1.923(vironment and standardize on i386 for those)-.4 F(platforms.)128
440.4 Q F2(pb_check_r)108 457.2 Q(equir)-.18 E(ements)-.18 E F0 .903(Th\
is function checks that the commands needed for the subsystem are indee\
d present.)128 469.2 R .903(The required)5.903 F 1.419
(commands are passed as a comma separated string as \214rst parameter)
128 481.2 R 6.418(.T)-.55 G 1.418(he optional commands are)-6.418 F
(passed as a comma separated string as second parameter)128 493.2 Q(.)
-.55 E F2(pb_check_r)108 510 Q(eq)-.18 E F0 .441(This function checks e)
128 522 R .441(xistence of a command and return its full pathname or un\
def if not found.)-.15 F(The)5.442 E 1.275
(command name is passed as \214rst parameter)128 534 R 6.275(.T)-.55 G
1.275(he second parameter should be 0 if the command is)-6.275 F
(mandatory)128 546 Q 3.035(,1i)-.65 G 3.035(fo)-3.035 G 3.035
(ptional. It)-3.035 F .535(returns the full path name of the command if\
found, undef otherwise and)3.035 F(dies if that w)128 558 Q
(as a mandatory command)-.1 E F2(pb_path_expand)108 574.8 Q F0
(Expand out a path by en)128 586.8 Q(vironment v)-.4 E
(ariables as \($ENV{')-.25 E F1(ENVV)A(AR)-1.215 E F0('}\) and ~)A F2
(pb_path_nb\214les)108 603.6 Q F0
(Return the number of \214les in a directory)128 615.6 Q/F3 10.95
/Times-Bold@0 SF(WEB SITES)72 632.4 Q F0 .748(The main W)108 644.4 R
.747(eb site of the project is a)-.8 F -.25(va)-.2 G .747
(ilable at . Bug reports should be)-.18 F(\214lled using the trac instan\
ce of the project at .)-.18 E F3(USER MAILING LIST)72 673.2 Q F0(None e)108
685.2 Q(xists for the moment.)-.15 E F3 -.548(AU)72 702 S(THORS).548 E
F0 12.544(The Project\255Builder)108 714 R(.or)-.55 E 15.044(gt)-.18 G
12.544(eam lead by Bruno Cornec)-.18 F(.)-.18 E(perl v5.28.3)72 768 Q 203.17
(2020-08-20 3)162.62 F 0 Cg EP
%%Page: 4 4
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF 124.535(Base\(3\) User)72 48 R(Contrib)2.5 E
(uted Perl Documentation)-.2 E(Base\(3\))127.035 E/F1 10.95/Times-Bold@0
SF(COPYRIGHT)72 84 Q F0(Project\255Builder)108 96 Q(.or)-.55 E 2.936(gi)
-.18 G 2.936(sd)-2.936 G(istrib)-2.936 E .436(uted under the)-.2 F/F2 9
/Times-Roman@0 SF(GPL)2.936 E F0 .436
(v2.0 license described in the \214le)2.936 F/F3 10/Courier@0 SF
(COPYING)2.935 E F0 .435(included with)2.935 F(the distrib)108 108 Q
(ution.)-.2 E(perl v5.28.3)72 768 Q 203.17(2020-08-20 4)162.62 F 0 Cg EP
%%Trailer
end
%%EOF