App-DistUtils

 view release on metacpan or  search on metacpan

script/pwd2mod  view on Meta::CPAN

#!perl

use 5.010;
use strict;
use warnings;

#use App::DistUtils;
use Perinci::CmdLine::Any;

our $AUTHORITY = 'cpan:PERLANCAR'; # AUTHORITY
our $DATE = '2023-05-20'; # DATE
our $DIST = 'App-DistUtils'; # DIST
our $VERSION = '0.154'; # VERSION

our %SPEC;

$SPEC{pwd2mod} = {
    v => 1.1,
    summary => 'Try to guess/extract module name from current directory',
    description => <<'_',

Will return `.` if module name cannot be guessed.

_
    args => {
    },
    result_naked => 1,
};
sub pwd2mod {
    my %args = @_;

    my $cwd = $ENV{PWD} // do { require Cwd; Cwd::cwd() };

    $cwd =~ s!.+[/\\]!!;
    $cwd =~ s/^(perl5?|cpan|p5?|pl)-//;
    $cwd =~ s/-/::/g;
    $cwd =~ /\A\w+(::\w+)*\z/ ? $cwd : ".";
}

Perinci::CmdLine::Any->new(
    url => "/main/pwd2mod",
)->run;

# ABSTRACT: Try to guess/extract module name from current directory
# PODNAME: pwd2mod

__END__

=pod

=encoding UTF-8

=head1 NAME

pwd2mod - Try to guess/extract module name from current directory

=head1 VERSION

This document describes version 0.154 of pwd2mod (from Perl distribution App-DistUtils), released on 2023-05-20.

=head1 SYNOPSIS

 % pwd
 /home/ujang/proj/perl-Foo-Bar

 % pwd2mod
 Foo::Bar

=head1 DESCRIPTION

Will return C<.> if module name cannot be guessed.

=head1 OPTIONS

C<*> marks required options.

=head2 Configuration options

=over

=item B<--config-path>=I<s>, B<-c>

Set path to configuration file.

Can actually be specified multiple times to instruct application to read from
multiple configuration files (and merge them).


=item B<--config-profile>=I<s>, B<-P>

Set configuration profile to use.

A single configuration file can contain profiles, i.e. alternative sets of
values that can be selected. For example:

 [profile=dev]
 username=foo
 pass=beaver
 
 [profile=production]
 username=bar
 pass=honey

When you specify C<--config-profile=dev>, C<username> will be set to C<foo> and
C<password> to C<beaver>. When you specify C<--config-profile=production>,
C<username> will be set to C<bar> and C<password> to C<honey>.


=item B<--no-config>, B<-C>

Do not use any configuration file.

If you specify C<--no-config>, the application will not read any configuration
file.


=back

=head2 Environment options

=over

=item B<--no-env>

Do not read environment for default options.

If you specify C<--no-env>, the application wil not read any environment
variable.


=back



( run in 0.553 second using v1.01-cache-2.11-cpan-39bf76dae61 )