stest: restore stream testing

main
Connor Lane Smith 2011-12-09 11:49:44 +01:00
parent 32ef0f5662
commit 6b1d658d12
2 changed files with 10 additions and 2 deletions

View File

@ -13,7 +13,8 @@ stest \- filter a list of files by properties
.B stest
takes a list of files and filters by the files' properties, analogous to
.IR test (1).
Files which pass all tests are printed to stdout.
Files which pass all tests are printed to stdout. If no files are given, stest
reads files from stdin.
.SH OPTIONS
.TP
.B \-a

View File

@ -3,6 +3,7 @@
#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/stat.h>
@ -17,7 +18,7 @@ static struct stat old, new;
int
main(int argc, char *argv[]) {
struct dirent *d;
char buf[BUFSIZ];
char buf[BUFSIZ], *p;
DIR *dir;
int opt;
@ -35,6 +36,12 @@ main(int argc, char *argv[]) {
fprintf(stderr, "usage: %s [-abcdefghlpqrsuwx] [-n file] [-o file] [file...]\n", argv[0]);
exit(2);
}
if(optind == argc)
while(fgets(buf, sizeof buf, stdin)) {
if((p = strchr(buf, '\n')))
*p = '\0';
test(buf, buf);
}
for(; optind < argc; optind++)
if(FLAG('l') && (dir = opendir(argv[optind]))) {
/* test directory contents */