}
sub _legacy {
- my ($self, $path, $deactivating) = @_;
+ my ($self, $path) = @_;
$self = $self->new unless ref $self;
- $self = $self->${\($deactivating ? 'deactivate' : 'activate')}($path) if defined $path;
+ if (defined $path) {
+ $self = $self->activate($path);
+ }
$self;
}
&& ${$value->[0]} eq $name) {
next;
}
+ if (!ref $value
+ && $value eq $ENV{$name}) {
+ next;
+ }
$out .= $self->$build_method($name, $value);
}
return $out;
my $value = $class->_interpolate($args, '%', '%');
$value =~ s/"/\\"/g
if defined $value;
- return defined($value) ? qq{set ${name} "${value}"\n} : qq{set ${name}=\n};
+ return qq{set $name=} . (defined($value) ? qq{"$value"} : '') . "\n";
}
+sub build_powershell_env_declaration {
+ my ($class, $name, $args) = @_;
+ my $value = $class->_interpolate($args, '$env:');
+ if (defined $value) {
+ $value =~ s/"/\\"/g;
+ return qq{\$env:$name = "$value"\n};
+ }
+ return "Remove-Item Env:\\$name\n";
+}
+
sub _interpolate {
my ($class, $args, $start, $end) = @_;