Here is a half-assed old version of chmod, in the vein of v5 chmod. It has a man page and informative ed-style error messages, but no recursion or POSIX-style 'symbolic mode expressions.' I'll refactor it to use util/recurse later. I don't really care about 'symbolic mode expressions.'
-- # Kurt H Maier
/* See LICENSE file for copyright and license details. */
#include <sys/stat.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include "util.h"
int
main(int argc, char *argv[])
{
int retval, filecount, i;
mode_t mode;
char *input;
mode = 0;
filecount = argc-1;
input = argv[1];
if ( argc < 3 ) {
eprintf("?\n");
exit(EXIT_FAILURE);
}
while ( *input ) {
if (*input < '0' || *input > '7') {
eprintf("?\n");
exit(EXIT_FAILURE);
}
mode = ( mode << 3 ) | ( *input - '0' ) ;
input++;
}
retval=0;
for (i=2; i <= filecount; i++) {
retval = chmod( argv[i], mode );
if (retval != 0) { printf ("? \n"); }
}
exit(EXIT_SUCCESS);
}
chmod.1
Description: Binary data
