summaryrefslogtreecommitdiff
path: root/lib/dotsh.pl
diff options
context:
space:
mode:
authorFlorian Ragwitz <rafl@debian.org>2011-07-03 12:22:37 +0200
committerFlorian Ragwitz <rafl@debian.org>2011-07-03 18:09:39 +0200
commit8cc871bd82ee24f31b8b9cf2c8458ced9d3dfd42 (patch)
tree4fa791cfabdc6fcdc543cc9c707178871625b589 /lib/dotsh.pl
parente846f1dc86643f46748f814adf2948a5787a2ccf (diff)
downloadperl-8cc871bd82ee24f31b8b9cf2c8458ced9d3dfd42.tar.gz
Remove deprecated Perl 4 core libraries
Diffstat (limited to 'lib/dotsh.pl')
-rw-r--r--lib/dotsh.pl78
1 files changed, 0 insertions, 78 deletions
diff --git a/lib/dotsh.pl b/lib/dotsh.pl
deleted file mode 100644
index 92f1f4c1fa..0000000000
--- a/lib/dotsh.pl
+++ /dev/null
@@ -1,78 +0,0 @@
-warn "Legacy library @{[(caller(0))[6]]} will be removed from the Perl core distribution in the next major release. Please install it from the CPAN distribution Perl4::CoreLibs. It is being used at @{[(caller)[1]]}, line @{[(caller)[2]]}.\n";
-
-#
-# @(#)dotsh.pl 03/19/94
-#
-# This library is no longer being maintained, and is included for backward
-# compatibility with Perl 4 programs which may require it.
-# This legacy library is deprecated and will be removed in a future
-# release of perl.
-#
-# In particular, this should not be used as an example of modern Perl
-# programming techniques.
-#
-# Author: Charles Collins
-#
-# Description:
-# This routine takes a shell script and 'dots' it into the current perl
-# environment. This makes it possible to use existing system scripts
-# to alter environment variables on the fly.
-#
-# Usage:
-# &dotsh ('ShellScript', 'DependentVariable(s)');
-#
-# where
-#
-# 'ShellScript' is the full name of the shell script to be dotted
-#
-# 'DependentVariable(s)' is an optional list of shell variables in the
-# form VARIABLE=VALUE,VARIABLE=VALUE,... that 'ShellScript' is
-# dependent upon. These variables MUST be defined using shell syntax.
-#
-# Example:
-# &dotsh ('/foo/bar', 'arg1');
-# &dotsh ('/foo/bar');
-# &dotsh ('/foo/bar arg1 ... argN');
-#
-
-sub dotsh {
- local(@sh) = @_;
- local($tmp,$key,$shell,$command,$args,$vars) = '';
- local(*dotsh);
- undef *dotsh;
- $dotsh = shift(@sh);
- @dotsh = split (/\s/, $dotsh);
- $command = shift (@dotsh);
- $args = join (" ", @dotsh);
- $vars = join ("\n", @sh);
- open (_SH_ENV, "$command") || die "Could not open $dotsh!\n";
- chop($_ = <_SH_ENV>);
- $shell = "$1 -c" if ($_ =~ /^\#\!\s*(\S+(\/sh|\/ksh|\/zsh|\/csh))\s*$/);
- close (_SH_ENV);
- if (!$shell) {
- if ($ENV{'SHELL'} =~ /\/sh$|\/ksh$|\/zsh$|\/bash$|\/csh$/) {
- $shell = "$ENV{'SHELL'} -c";
- } else {
- print "SHELL not recognized!\nUsing /bin/sh...\n";
- $shell = "/bin/sh -c";
- }
- }
- if (length($vars) > 0) {
- open (_SH_ENV, "$shell \"$vars && . $command $args && set \" |") || die;
- } else {
- open (_SH_ENV, "$shell \". $command $args && set \" |") || die;
- }
-
- while (<_SH_ENV>) {
- chop;
- m/^([^=]*)=(.*)/s;
- $ENV{$1} = $2;
- }
- close (_SH_ENV);
-
- foreach $key (keys(%ENV)) {
- $tmp .= "\$$key = \$ENV{'$key'};" if $key =~ /^[A-Za-z]\w*$/;
- }
- eval $tmp;
-}
-1;