aboutsummaryrefslogtreecommitdiff
path: root/re!
diff options
context:
space:
mode:
Diffstat (limited to 're!')
-rwxr-xr-xre!48
1 files changed, 0 insertions, 48 deletions
diff --git a/re! b/re!
deleted file mode 100755
index 1314ae9..0000000
--- a/re!
+++ /dev/null
@@ -1,48 +0,0 @@
-#!/usr/bin/env perl
-
-# re! -- rewrite shebangs
-
-use strict;
-
-my $test = 0;
-sub usage { die "usage: $0 [-n] file ...\n" }
-
-if (@ARGV and $ARGV[0] eq '-n') {
- $test = 1;
- shift @ARGV;
-}
-usage if not @ARGV;
-
-for my $file (@ARGV) {
- open my $o, '<', $file or die "could not open $file: $!\n";
-
- # parse shebang
- my $shebang = <$o>;
- $shebang =~ /^#!/ or die "no shebang: $file\n";
- $shebang =~ /^#!\s*(\S+)\s*(.*)/;
- my ($old, $args) = ($1, $2);
-
- # validate path
- next if -x $old;
-
- # get new path
- (my $basename = $old) =~ s,.*/,,;
- chomp(my $new = `which $basename`);
- $new or die "could not find $basename\n";
- next if $old eq $new;
-
- # print results if test
- if ($test) {
- print "$file: $old -> $new\n";
- next;
- }
-
- # write new shebang
- open my $n, '>', "$file.tmp" or die "could not open $file.tmp: $!\n";
- print $n "#!$new $args\n";
- print $n $_ while <$o>;
-
- close for ($o, $n);
- system('mv', "$file.tmp", $file) == 0
- or die "could not overwrite $file\n";
-}