API for Perl Modules for new infra ================================== Module TLSRC ------------ Constructor: TLSRC->new; TLSRC->new( name => "foobar", shortdesc => "The foobar package", ...); Input/Output $tlsrc->from_file("package.tlsrc"); $tlsrc->writeout without arg to stdout with arg to filehandle Read/Write functions (with argument set, without arg read) $tlsrc->name $tlsrc->category $tlsrc->shortdesc $tlsrc->longdesc $tlsrc->catalogue $tlsrc->srcpatterns $tlsrc->docpatterns $tlsrc->runpatterns $tlsrc->binpatterns $tlsrc->depends $tlsrc->executes Generation function $tlp = $tlsrc->make_tlp($tltree); generates a TLP object from itself (a TLSRC obj) and a TLTREE object (see below) Module TLP ---------- Package variables: &TLP->zipdir set/returns the default location for created zip files Constructur: TLP->new; TLP->new( name => "foobar", ...); Input/Output $tlp->from_file("package.tlp"); reads from file, only one tlp allowed in file $tlp->from_fh($filehandle [, $multi] ); reads from $filehandle if $multi is undefined (ie not given) then multiple tlp in the same file are treated as errors if $multi is defined then returns after reading one tlp returns 1 if it found a tlp, otherwise 0 $tlp->writeout without arg to stdout with arg to filehandle $tlp->writeout_simple for comparison with tpm/tlps, will go away $tlp->make_zip($tltree[,$destdir[,$zipname]]); creates a zip file of the tlp in $destdir (if not defined then TLP->zipdir is used). The file name of the created zipfile is $zipname (if not present $tlp->name.zip) If the package contains "binfiles"; then zip files for all archs containing binfiles are created, and the zipfile name is $zipname-$arch.zip Utilities: $tlp->recompute_sizes($tltree) recomputes all the *size fields, see below $tlp->is_arch_dependent true if it contains bin files, otherwise false Read/Write functions (with argument set, without arg read) $tlp->name $tlp->category $tlp->revision $tlp->shortdesc $tlp->longdesc $tlp->catalogue reads/returns scalar $tlp->srcfiles $tlp->srcsize $tlp->docfiles $tlp->docsize $tlp->runfiles $tlp->runsize *files reads/returns array of files *size reads/returns scalar $tlp->binfiles $tlp->binsize note that this gives/returns a HASH of architectures!! $tlp->depends $tlp->executes reads/returns array $tlp->add_srcfiles(@files) adds @files to the list of srcfiles $tlp->add_docfiles(@files) adds @files to the list of docfiles $tlp->add_runfiles(@files) adds @files to the list of runfiles $tlp->add_binfiles($arch,@files) adds @files to the list of binfiles for arch=$arch $tlp->add_files($type,@files) adds @files to the list of $type = (run|doc|src)files NOT FOR binfiles! Module TLTREE ------------- (this one is still quite hacky) Constructor TLTREE->new; TLTREE->new( svnroot => "path/to/svn/managed/dir" ); Init functions $tltree->init_from_svn changes to svnroot, calls svn status -v and builds up all the necessary information $tltree->init_from_statusfile($file) does the same as init_from_svn, but from a pre-made output of svn status -v Input/Ouput $tltree->print to stdout, more or less for hacking only not usefull Pattern matching functions $ref = $tltree->get_matching_files($type,$pattern) for $type = bin returns a ref to a hash of keys = architectures otherwise returns a ref to an array (see specification) Other functions $tltree->file_svn_lastrevision($file) returns the revision of the last change of file as given by svn status -v undef if file is not contained in $tltree $tltree->size_of($file) returns the size of $file, or undef if not in tree &$tlsrc->architectures sets/reads the list of architectures, predefined to .... Module TLDB ----------- Constructore TLDB->new; TLDB->new ( location => "path/to/tldb/file" ); Read/Write functions (with argument set, without arg read) $tldb->location Input/Output $tldb->from_file($filename); reads a tldb file (tlp descriptions separated by newlines) $tldb->writeout without arg to stdout with arg to filehandle $tldb->save saves to $self->location; $tldb->generate_packagelist outputs list of "package revision" for web delivery without arg to stdout with arg to filehandle TLP interface $tldb->add_tlp($tlp) adds a TLP to the TLDB (or replaces an already present) $tlp = $tldb->get_package("packagename"); returns undef if not installed $rev = $tldb->package_revision("packagename"); returns undef if not installed, otherwise the revision of "packagename" Package TLUtils --------------- exported functions: sort_uniq(@list) push_uniq(\@list,@list) dirname($file) basename($file)