summaryrefslogtreecommitdiff
path: root/Master/tlpkg/doc/historic/Perl-API.txt
diff options
context:
space:
mode:
Diffstat (limited to 'Master/tlpkg/doc/historic/Perl-API.txt')
-rw-r--r--Master/tlpkg/doc/historic/Perl-API.txt290
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);