X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=p5sagit%2Flocal-lib.git;a=blobdiff_plain;f=lib%2Flocal%2Flib.pm;h=216426be0e9014cb38f4b3a76333430bdbc6535e;hp=dc5daeffd887470de1a71c947d44afd94a45d4ac;hb=1730f48f02f596ea214aab12466dd6471a2990d7;hpb=7302e8e78fb14165bb8e175932bcecb642e75a7d diff --git a/lib/local/lib.pm b/lib/local/lib.pm index dc5daef..216426b 100644 --- a/lib/local/lib.pm +++ b/lib/local/lib.pm @@ -8,11 +8,13 @@ use 5.006; use File::Spec (); use Config; -our $VERSION = '2.000003'; # 2.0.3 +our $VERSION = '2.000004'; # 2.0.4 $VERSION = eval $VERSION; sub import { my ($class, @args) = @_; + push @args, @ARGV + if $0 eq '-'; my @steps; my %opts; @@ -440,6 +442,16 @@ sub wrap_powershell_output { return $out || " \n"; } +sub build_fish_env_declaration { + my ($class, $name, $args) = @_; + my $value = $class->_interpolate($args, '$%s', '"', '\\%s'); + if (!defined $value) { + return qq{set -e $name;\n}; + } + $value =~ s/$_path_sep/ /g; + qq{set -x $name $value;\n}; +} + sub _interpolate { my ($class, $args, $var_pat, $escape, $escape_pat) = @_; return @@ -554,12 +566,13 @@ sub guess_shelltype { for ($shellbin) { return - /csh/ ? 'csh' - : /command\.com/i ? 'cmd' - : /cmd\.exe/i ? 'cmd' - : /4nt\.exe/i ? 'cmd' - : /powershell\.exe/i ? 'powershell' - : 'bourne'; + /csh$/ ? 'csh' + : /fish/ ? 'fish' + : /command(?:\.com)?$/i ? 'cmd' + : /cmd(?:\.exe)?$/i ? 'cmd' + : /4nt(?:\.exe)?$/i ? 'cmd' + : /powershell(?:\.exe)?$/i ? 'powershell' + : 'bourne'; } }