return res!=-1 && S_ISREG(res) ? EXIT_SUCCESS : EXIT_FAILURE;
}
+static int
+execMkdir(int argc, char *argv[])
+{
+ int i = 1;
+ int res = EXIT_SUCCESS;
+
+ if (argc<2) {
+ WRITE_MSG(2, "No files specified for 'mkdir' operation; try '--help' for more information\n");
+ return wrapper_exit_code;
+ }
+
+ for (;i<argc; ++i) {
+ if (mkdir(argv[i], 0755)==-1) {
+ PERROR_Q(ENSC_WRAPPERS_PREFIX "mkdir", argv[i]);
+ res = EXIT_FAILURE;
+ }
+ }
+
+ return res;
+}
+
+static int
+execChmod(int argc, char *argv[])
+{
+ int i = 2;
+ int res = EXIT_SUCCESS;
+ unsigned long mode;
+
+ if (argc<3) {
+ WRITE_MSG(2, "No files specified for 'chmod' operation; try '--help' for more information\n");
+ return wrapper_exit_code;
+ }
+
+ if (!isNumberUnsigned(argv[1], &mode, 1)) {
+ WRITE_MSG(2, "Invalid mode: '");
+ WRITE_STR(2, argv[1]);
+ return EXIT_FAILURE;
+ }
+
+ for (;i<argc; ++i) {
+ if (chmod(argv[i], mode)==-1) {
+ PERROR_Q(ENSC_WRAPPERS_PREFIX "chmod", argv[i]);
+ res = EXIT_FAILURE;
+ }
+ }
+
+ return res;
+}
static struct Command {
char const *cmd;
{ "truncate", execTruncate },
{ "testfile", execTestFile },
{ "rm", execRm },
+ { "mkdir", execMkdir },
+ { "chmod", execChmod },
{ 0,0 }
};
" append <file> ... appends stdin to <file> which is created when needed\n"
" truncate <file> ... clear <file> and fill it with stdin; the <file> is\n"
" created when needed\n"
- " rm <file>+ ... unlink the given files\n\n"
+ " rm <file>+ ... unlink the given files\n"
+ " mkdir <file>+ ... create the given directories\n"
+ " chmod <mode> <file>+\n"
+ " ... change access permissions of files\n\n"
"Please report bugs to " PACKAGE_BUGREPORT "\n");
exit(0);
}