diff options
Diffstat (limited to 'Master/tlpkg/doc/historic/Perl-API.txt')
-rw-r--r-- | Master/tlpkg/doc/historic/Perl-API.txt | 290 |
1 files changed, 290 insertions, 0 deletions
diff --git a/Master/tlpkg/doc/historic/Perl-API.txt b/Master/tlpkg/doc/historic/Perl-API.txt new file mode 100644 index 00000000000..2b3200c2e74 --- /dev/null +++ b/Master/tlpkg/doc/historic/Perl-API.txt @@ -0,0 +1,290 @@ +API for Perl Modules for new infra +================================== + +NOTE: THE DEFINITIVE DOCUMENTATION IS IN THE PM FILES AS POD DOCUMENTATION!! + +Module TeXLive::TLPSRC +---------------------- + +PLEASE SEE THE MANPAGE OF TeXLive::TLPSRC which is MORE UP 2 DATE!!!! + +Constructor: + TeXLive::TLPSRC->new; + TeXLive::TLPSRC->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_tlpobj($tltree); + generates a TeXLive::TLPOBJ object from itself and + a TeXLive::TLTREE object (see below) + + +Module TeXLive::TLPOBJ +---------------------- + +PLEASE SEE THE MANPAGE OF TeXLive::TLPOBJ which is MORE UP 2 DATE!!!! + +Package variables: + &TeXLive::TLPOBJ->zipdir + set/returns the default location for created zip files + +Constructur: + TeXLive::TLPOBJ->new; + TeXLive::TLPOBJ->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 arch INDEPENDENT files in 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 ONLY the binfiles are created, and + the zipfile name is + $zipname.$arch.zip + + All the arch independent zip files ALSO contain the + respective TLPOBJ file in + .tlpobj/$name.tlpobj + SO $zipname.zip does contain this tlpobj file, while + $zipname.$arch.zip does NOT. + + (Compatibility with the scheme used before) + + $tlp->update_from_catalogue($texcatalogue); + merges some information from the TeX Catalogue into + the TLPOBJ + +Utilities: + $tlp->recompute_sizes($tltree) + recomputes all the *size fields, see below + $tlp->recompute_revision($tltree) + recomputes the revision of the package + $tlp->is_arch_dependent + true if it contains bin files, otherwise false + $tlp->total_size + if no arguments given this is + srcsize + docsize + runsize + if args are given then this is + srcsize + docsize + runsize + + + sum_{i in args} binsize{$i} + +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) + $tlp->remove_srcfiles(@files) + adds @files to the list of srcfiles + $tlp->add_docfiles(@files) + $tlp->remove_docfiles(@files) + adds @files to the list of docfiles + $tlp->add_runfiles(@files) + $tlp->remove_runfiles(@files) + adds/removes @files to the list of runfiles + + $tlp->add_binfiles($arch,@files) + $tlp->remove_binfiles($arch,@files) + adds/removes @files to the list of binfiles for arch=$arch + + $tlp->add_files($type,@files) + $tlp->remove_files($type,@files) + adds/removes @files to the list of $type = (run|doc|src)files + NOT FOR binfiles! + + +Module TeXLive::TLTREE +---------------------- +(this one is still quite hacky) + +Constructor + + TeXLive::TLTREE->new; + TeXLive::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 + $tltree->init_from_files + inits from a find $svnroot command, all the revisions + are set to 1 + +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) + + Note that a pattern of the form + bin/${ARCH}/foobar + also matches for arch=win32 + bin/${ARCH}/foobar.{exe,bat} + + +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 TeXLive::TLPDB +------------------------ +Package variables: + &TeXLive::TLPDB->listdir + sets/returns the default location for created list files + +Constructor + + TeXLive::TLPDB->new; + TeXLive::TLPDB->new ( location => "path/to/tldb/file" ); + TeXLive::TLPDB->new ( location => "http://path/to/tldb/file" ); + TeXLive::TLPDB->new ( location => "ftp://path/to/tldb/file" ); + +Read/Write functions (with argument set, without arg read) + + $tldb->location + +Input/Output + + $tldb->from_file("path/to/tldb/file"); + $tldb->from_file("http://path/to/tldb/file"); + $tldb->from_file("ftp://path/to/tldb/file"); + 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 + + $tldb->generate_listfiles([$destdir]) + create list file(s) in $destdir (if not given then it defaults + to TLDB->listdir) (could be more than one for + packages with binary files) + + $tldb->list_packages + returns all packages installed + +TLP interface + + $tldb->add_tlpobj($tlp) + adds a TeXLive::TLPOBJ to the db (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 TeXLive::TLUtils +------------------------ + +exported functions: + platform; + platform_desc($platform); + win32; + unix; + getenv($string); + which($string); + program_exists($program); + get_system_tmpdir; + dirname($path); + basename($path); + dirname_and_basename($path); + mkdirhier($path); + copy($file, $target_dir); + media; + initialze_installer; + binaries_available_from_disk; + binaries_available_from_net; + make_var_skeleton($path); + make_local_skeleton($path); + sort_uniq(@list); + push_uniq(\@list, @items); + member($item, @list); + debug($string); |