From: Graham Knop Date: Sat, 2 Nov 2013 18:45:33 +0000 (-0400) Subject: add --no-create option X-Git-Tag: v2.000_000~40 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=p5sagit%2Flocal-lib.git;a=commitdiff_plain;h=80816e53fd05ed5445260640f717ad9ce295f4e6 add --no-create option --- diff --git a/lib/local/lib.pm b/lib/local/lib.pm index 9abbadf..edd50fa 100644 --- a/lib/local/lib.pm +++ b/lib/local/lib.pm @@ -45,6 +45,9 @@ DEATH my $shell = defined $1 ? $1 : shift @args; $opts{shelltype} = $shell; } + elsif ( $arg eq '--no-create' ) { + $opts{no_create} = 1; + } elsif ( $arg =~ /^--/ ) { die "Unknown import argument: $arg"; } @@ -88,6 +91,7 @@ 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}; my $_version = $Config{version}; @@ -220,7 +224,8 @@ sub activate { my ($self, $path) = @_; $self = $self->new unless ref $self; $path = $self->resolve_path($path); - $self->ensure_dir_structure_for($path); + $self->ensure_dir_structure_for($path) + unless $self->no_create; my @active_lls = $self->active_paths; @@ -802,6 +807,11 @@ Specify the shell type to use for output. By default, the shell will be detected based on the environment. Should be one of: C, C, C, or C. +=head2 --no-create + +Prevents C from creating directories when activating dirs. This is +likely to cause issues on Win32 systems. + =head1 METHODS =head2 ensure_dir_structure_for