sub import {
my ($class, @args) = @_;
+ push @args, @ARGV
+ if $0 eq '-';
my @steps;
my %opts;
sub bins { $_[0]->{bins} ||= [ \'PATH' ] }
sub roots { $_[0]->{roots} ||= [ \'PERL_LOCAL_LIB_ROOT' ] }
sub extra { $_[0]->{extra} ||= {} }
-sub shelltype { $_[0]->{shelltype} ||= $_[0]->guess_shelltype }
sub no_create { $_[0]->{no_create} }
my $_archname = $Config{archname};
}
$out .= $self->$build_method($name, $value);
}
- my $wrap_method = 'wrap_' . $self->shelltype . '_output';
+ my $wrap_method = "wrap_${shelltype}_output";
if ($self->can($wrap_method)) {
return $self->$wrap_method($out);
}
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
for ($shellbin) {
return
/csh$/ ? 'csh'
+ : /fish/ ? 'fish'
: /command(?:\.com)?$/i ? 'cmd'
: /cmd(?:\.exe)?$/i ? 'cmd'
: /4nt(?:\.exe)?$/i ? 'cmd'