########################################
Revision history for Sysadm::Install
########################################

0.47  (2016/05/29)
    (ms) password_read() now writes the prompt to STDERR (instead of STDOUT), and
         optionally to /dev/tty if specified. This allows for redirecting STDOUT 
         (and even STDERR) to a file without losing the password prompt.

0.46  (2015/06/23)
    (ms) ask() and pick() now support getting the user's response on the 
         tty, instead of stdin, so they can be used from within a pipe.

0.45  (2015/05/25)
    (ms) Alexandr Ciornii fixed manifest and tests for the Windows platform

0.44  (2014/05/20)
    (ms) replaced bin_find() implementation by File::Which
    (ms) tap() with raise_error option set now dies with stderr output, 
         because $! isn't set on failed close().

0.43  (2013/03/16)
    (ms) Using binmode() now for slurp/blurt for compatibility with Win32
         systems.

0.42  (2013/01/20)
    (ms) No longer silently removing directories that are in the way 
         before untar().
    (ms) Better error diagnosis on failing untar() tests

0.41  (2012/12/17)
    (ms) Added home_dir() function returning user's home directory.
    (ms) tap() now supports stdout_limit and stderr_limit options to 
         limit log verbosity

0.40  (2012/09/15)
    (ms) Applied pull request by ks0608 to fix Cwd problem on Win32/Mac
         (https://github.com/mschilli/sysadm-install-perl/pull/1)

0.39  (2012/05/17)
    (ms) Fixed bin_find, to omit directories
    (ms) Added cdback() with reset option

0.38  (2011/07/30)
    (ms) Fixed Win32 test in 012tap.t

0.37  (2011/06/25)
    (ms) [rt.cpan.org #68095] Applied fix by Kai von Thadden for
         tap's raise_error option and added test case.

0.36  (2011/05/01)
    (ms) Added owner_cp() to copy uid and gid of a file or directory.
    (ms) Added raise_error option for tap()
    (ms) snip() now returns original string (with unprintables replaced) 
         if the data length is shorter than $maxlen.

0.35  (2010/04/13)
    (ms) [RT 54885] Merged with github fork by Thomas Lenz, fixing 
         blurt_atomic on Win32.
    (ms) Fixed local caller_depth increments
    (ms) Fixed printable() bug masking '-'.

0.34  (2010/02/21)
    (ms) Added github repository link to Makefile.PL
    (ms) [RT 53324] bin_find fix for Windows using $Config::Config{path_sep}
    (ms) [RT 54555] Fixed test suite errors on Win32

0.33 (2009/09/12)
    (ms) utf8_available() now uses eval"" to check for Encode module, 
         Sysadm::Install therefore no longer requires Encode to be installed.
    (ms) Got rid of LWP::Simple because of its env_proxy() call at 
         compile time, which freaks out on env variables like "use_proxy"
         when set to numeric values. Using LWP::UserAgent instead.

0.32 2009/08/28
    (ms) Made utf8 handling configurable instead of sneaky capability
         detection, after all, there's apps using different encodings.

0.31 2009/08/27
    (ms) nhandler(at)ubuntu.com provided a patch to resolve pod2man errors:
         https://rt.cpan.org/Public/Bug/Display.html?id=47525
    (ms) slurp() and blurt() now use utf8 mode by default if available
    (ms) added utf8_available() and is_utf8_data()

0.29 2009/06/25
    (ms) Greg Olszewski added proper error handling to print and 
         pipe statements
    (ms) Fixed up some "if $dir" cases to protect against a 
         value of "0" in $dir.
    (ms) Fixed up logcroak calls to use the current logger instead of 
         the root logg

0.28 2009/05/11
    (ms) Skipping fs_read_open test case if there's no cpio on 
         the target system (reported for armv5tejl-linux).
    (ms) Fixed download() with a better check for getstore(), 
         suggested by Bernhard Minks.

0.27 2008/03/26
    (ms) Fixes a broken CPAN upload.

0.26 2008/03/25
    (ms) Added rc/stdout/stderr debug output to tap()
    (ms) Added perm_get/set to export list
    (ms) Added shell escapes for tap()

0.25 2008/02/07
    (ms) Fixed directory stack bug in cdback()

0.24 2007/10/24
    (ms) Added def_or() function to emulate the //= operator
    (ms) Added blurt_atomic() to write data to a file, guaranteeing that
         the operation either fully succeeds or fails. It makes sure that
         we're not left with a partially written file in case the
         operation gets interrupted.
    (ms) fixed password_read() documentation bug

0.23 2007/04/01
    (ms) Added nice_time() and password_read().
    (ms) Fixed quote($str, ":shell") to escape single quotes within
         single quotes in a shell-compatible way.

0.22 2006/09/19
    (ms) Skipping Archive::Tar tests if A:T isn't installed

0.21 2006/02/02
    (ms) Added log messages to cp, mv, download, make.
    (ms) untar() and untar_in() now pass the cwd value to
         Archive::Tar's extract function to avoid excessive
         and expensive cwd() calls (thanks to Greg Olszewski
         for finding this performance bottleneck).

0.20 2005/08/13
    (ms) Requiring Log4perl-1.00 now to avoid a problem with the
         test suite.

0.19 2005/07/28
    (ms) Greg Olszewski reported a bug in untar_in() with tarfiles
         on relative paths, fixed by using one-argument version of
         rel2abs.

0.18 2005/07/14
    (ms) Requiring File::Temp 0.16 now (S:I needs OO-API).
    (ms) Errors are now reported via croak(), which reports the location
         in the calling script, not in Sysadm::Install.

0.17 2005/04/23
    (ms) Added interactive mode. If you call
         Sysadm::Install::confirm(1) before running Sysadm::Install
         commands, every writing function (cp(), mv(), untar(), pie(),
         blurt(), ...) will ask the user for confirmation before actually
         performing what's been requested. Sysadm::Install::confirm(0)
         switches back to normal.
    (ms) Added patch by Jud Dagnall to allow slurp() to process
         @ARGV like <> does.
    (ms) Archive::Tar is no longer mandatory for installation, just
         for using untar() and untar_in().

0.16 2005/04/10
    (ms) Bumped up Log4perl reporting level. On typical S:I functions,
         the log message will show the *calling program*'s file name
         and line number.
    (ms) slurp() and blurp() are now displaying parts of the data 
         read/written.
    (ms) Added check for IO::Zlib and better error message if it's
         not installed and a compressed tarball needs to be processed.
    (ms) Requiring L4p 0.48 and Archive::Tar 1.23 to make sure test
         suite succeeds.

0.15 (03/17/2005)
    (ms) Added eg/one-liner

0.14 (03/10/2005)
    (ms) Added dry-run function dry_run(1) suppressing write actions
    (ms) Added perm_get and perm_set to compliment perm_cp

0.13 (01/25/2005)
    (ms) Makefile.PL prerequisite changed from undef to '0'.

0.12 (01/15/2005)
    (ms) Added fs_read_open(), fs_write_open() and pipe_copy()
    (ms) blurt/slurp now report the # of bytes

0.11 (01/11/2005)
    (ms) tap() single-quotes args now by default
    (ms) tap() allows for optional double-quoting or no-quoting

0.10 (01/09/2005)
    (ms) removed Expect dependency ('require' on demand)
    (ms) added say()
    (ms) added sudo_me() and bin_find()
    (ms) tap() now returns the exit code as a third parameter. Improved
         command handling by using qquote() to separate args.

0.09 (12/04/2004)
    (ms) added hammer() and dependency on Expect
    (ms) corrected shell escapes with qquote()

0.08 (11/24/2004)
    (ms) added perm_cp() to copy file permissions
    (ms) added untar_in() to untar tarballs in specified directories
    (ms) added sysrun() to run shell commands plus logging
    (ms) added pick() and ask() to ask for interactive user input

0.07 (11/17/2004)
    (ms) added qquote()

0.06 (11/04/2004)
    (ms) added plough

0.05 (10/16/2004)
    (ms) added mv
    (ms) Functions not exported by default anymore. Use
             use Sysadm::Install qw(:all)
         to get the old behaviour.
    (ms) added tap

0.04 (10/08/2004)
    (ms) Fixed untar and test suite

0.03 (10/08/2004)
    (ms) Added slurp/blurt and pie() to support 'perl -pie ...'-like commands

0.02 (07/17/2004)
    (ms) Added untar()

0.01 (07/16/2004)
    (ms) Where it all began.