Rename setexec to chexec.
[utils/utils.git] / setexec
diff --git a/setexec b/setexec
deleted file mode 100755 (executable)
index 6f071eb..0000000
--- a/setexec
+++ /dev/null
@@ -1,42 +0,0 @@
-#!/usr/bin/perl
-# setexec: turns a file's executability on or off, same semantics as rsync's --executability
-# usage: setexec { + | - | --reference=<file> } <file> [...]
-
-$cmd = $ARGV[0];
-shift @ARGV;
-
-if ($cmd =~ /^--reference=(.*)$/) {
-       $ref_file = $1;
-       @stbuf = stat($ref_file);
-       if (@stbuf == 0) {
-               die "setexec: stat($ref_file): $!\n";
-       }
-       $ref_perms = $stbuf[2] & 07777;
-       if (($ref_perms & 0111) == 0) {
-               $cmd = '-';
-       } else {
-               $cmd = '+';
-       }
-} elsif ($cmd ne '+' && $cmd ne '-') {
-       die "usage: setexec { + | - | --reference=<file> } <file> [...]\n";
-}
-
-sub docmd($$) {
-       my ($cmd, $perms) = @_;
-       if ($cmd eq '+') {
-               return $perms | ($perms & 0444) >> 2;
-       } elsif ($cmd eq '-') {
-               return $perms & ~0111;
-       }
-}
-
-file: foreach $file (@ARGV) {
-       @stbuf = stat($file);
-       if (@stbuf == 0) {
-               warn "setexec: stat($file): $!, skipping file\n";
-               next file;
-       }
-       $perms = $stbuf[2] & 07777;
-       $perms = docmd($cmd, $perms);
-       chmod($perms, $file) or warn "setexec: chmod($perms, $file): $!, skipping file\n";
-}