#!/usr/bin/env perl use 5.008.004; 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( 0755, $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: $!"; }