CLI-Simple

 view release on metacpan or  search on metacpan

bin/create-modulino  view on Meta::CPAN

-m, --module   module name
-b, --bindir   executable directory
-d, --destdir  optional prefix for installation
-a, --alias    alias or symbolic link name

Example:

 create-modulino.pl -b /usr/local/bin -a find-requires -m Module::ScanDeps::FindRequires

END_OF_USAGE

  return 0;
}

########################################################################
sub main {
########################################################################
  my @option_specs = qw(
    bindir=s
    destdir=s
    alias=s
    module=s
    help
  );

  my %options;

  GetOptions( \%options, @option_specs );

  my $module = $options{module};

  if ( $options{help} ) {
    exit usage();
  }

  die "--module is a require option\n"
    if !$module;

  my $path = which 'modulino';

  die "no path to modulino\n"
    if !$path;

  my $executable_path = dirname $path;

  my $bindir = $options{bindir} // $executable_path;

  my $destdir = $options{destdir} // q{};

  my $alias = $options{alias};

  my $modulino_name = create_modulino_name( $options{module} );
  my $modulino_path = sprintf '%s%s/%s', $destdir, $bindir, $modulino_name;

  if ( -e "$modulino_path" ) {
    unlink "$modulino_path";
  }

  copy( $path, "$modulino_path" );

  chmod oct('0755'), "$modulino_path";

  if ($alias) {
    symlink "$modulino_path", "$destdir$bindir/$alias";
  }

  return 0;
}

exit main();

1;



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