A new esprit update has been pushed to the servers at this time.  Among the changes includes a new process handling class that supports pipelining and hooks.  Pipelines allow us to build complex commands that stream the output from one command as the input of another command without resorting to ugly shell scripts.  Pipelines not only provide a native interface, but give derived classes, such as our compression filters in the File Manager, the ability to stream input directly from its base class.   Just to give an idea of the simplicity, tar -xvzf file.tar.gz and tar -xvjf file.tar.bz2 | wc -l are represented as:

<?php
    new Process('gzip -dc file.tar.gz')->pipe('tar -xvf -')->run()
?>
<?php
    new Process('bzip2 -dc file.tar.bz2')->pipe('tar -xvf -')->pipe('wc -l')->run()
?>
  • Added: new command handling class. Noteworthy additions include arbitrary descriptor sets, processing hooks (exit, read/write processing loop), multiple I/O streams, buffered I/O, stream piping, multiple post processing data structures, and execution timeouts (Process)
  • Added: tar list/extraction support (File)
  • Added: call_proc() variable arguments, call_proc_safe() – untrusted analogue to call_proc() which formats and escapes arguments prior to execution (Module Skeleton)
  • Added: variable formatting support , call stack introspection (Error Reporter)
  • Added: deprecation macros, deprecated_func() (Error Reporter)
  • Added: improved filename character support (File)
  • Added: inode information to stat() (File)
  • Fixed: translate octal from getfacl  output in get_acls() (File)
  • Fixed: file names with glob patterns  ignored in copy() (File)
  • Fixed: JSON encoding preserved in package description (Package Manager)
  • Fixed: content disposition character range when suggesting file names to save as (File Manager)
  • Fixed: reversed billing standing indicator in get_billing_status()  (Billing)
  • Fixed: deprecated affected_rows() method calls (Billing)
  • Fixed: user data clobbered on query() invocation from backend (Module Skeleton)
  • Changed: create_directory() make parent directories parameter (File)
  • Changed: faster directory descension check (File)
  • Changed: attempt to stream downloaded files directly before copying to accessible location (File Manager)
  • Changed: remove deprecated -1 = failure parameter in call_proc() (Module Skeleton)
  • Changed: redirect to target directory after extraction if successful  (File Manager)
  • Changed: clean-up call_proc(), remove class variable references, numerous command clean-ups (Module Skeleton)
  • Changed: clean-up archive interface, restructure interface, add base class, use built-in functions (File)
  • Changed: list compressed file entries as tree, remove parent directory (File Manager)
  • Changed: use TRAC_VERSION constant in install_trac () (Verco)
  • Changed: move “Commands” to top in File Manager for compressed file view
  • Changed: deprecate File::sort_files() filesystem sorter, prefer unified Conf_Util::sort()/Conf_Util::sort_algo() functions (File)
  • Changed: reimplement zip, bzip, gzip, tar compression filters (Archive Interface)
  • Changed: upgrade Subversion to 1.5.5
  • Changed: include control to delete card information from system (Change Billing Information)
  • Changed: upgrade Trac to 0.11.3 (Storehouse)
  • Changed: more HTML clean-up
esprit Update – new process handler, File Manager enhancements, internals