The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/env perl

use strict;
use warnings;

use FindBin qw($Bin $Script);
use File::Basename;

my $bindir="bin";

if(! -d $bindir) {
    mkdir $bindir || die "Could not mkdir $bindir: $!";
}

print "Using perl binary: $^X",$/;
print "Using perl version $^V",$/;

for my $dest (@ARGV) {
    my $source=$Bin.'/'.basename($dest);

    next if($source =~ m/$Script/);
    next if($source =~ m/\.x$/);

    print "Generating: $source",$/;

    if(-f $dest) {
        chmod(0777, $dest) || die "Could not chmod $dest for removing: $!";
    }

    open(my $sfh, '<', $source) || die "Could not open $source for reading: $!";
    open(my $dfh, '>', $dest  ) || die "Could not open $dest for writing: $!";
    print $dfh $_ while(<$sfh>);
    close($sfh);

    if($source !~ m/clusterssh_bash_completion.dist/) {
        print $dfh "\n\n__END__\n\n";

        my $pod= qx{ $^X $source --generate-pod };
        die "Failed to generate pod" if($?);
        print $dfh $pod;
    }

    close($dfh);

    chmod(0555, $dest) || die "Could not chmod $dest: $!";
}