#!/usr/bin/perl
-# setexec: turns a file's executability on or off, same semantics as rsync's --executability
-# usage: setexec { + | - | --reference=<file> } <file> [...]
+# chexec: turns a file's executability on or off, same semantics as rsync's --executability
+# usage: chexec { + | - | --reference=<file> } <file> [...]
+# Rename from setexec for consistency with chmod, etc. and cadaver's chexec - Matt 2009-07-02
$cmd = $ARGV[0];
shift @ARGV;
$ref_file = $1;
@stbuf = stat($ref_file);
if (@stbuf == 0) {
- die "setexec: stat($ref_file): $!\n";
+ die "chexec: stat($ref_file): $!\n";
}
$ref_perms = $stbuf[2] & 07777;
if (($ref_perms & 0111) == 0) {
$cmd = '+';
}
} elsif ($cmd ne '+' && $cmd ne '-') {
- die "usage: setexec { + | - | --reference=<file> } <file> [...]\n";
+ die "usage: chexec { + | - | --reference=<file> } <file> [...]\n";
}
sub docmd($$) {
file: foreach $file (@ARGV) {
@stbuf = stat($file);
if (@stbuf == 0) {
- warn "setexec: stat($file): $!, skipping file\n";
+ warn "chexec: 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";
+ chmod($perms, $file) or warn "chexec: chmod($perms, $file): $!, skipping file\n";
}