Bell 32V release
[unix-history] / usr / src / cmd / mvall.c
CommitLineData
3b600ead
TL
1# include <sys/param.h>
2# include <stat.h>
3int status;
4
5main(argc, argv)
6int argc;
7char **argv;
8{
9register i;
10register char *c1, *c2;
11char dirname[100];
12
13if(argc < 3)
14 {
15 prs("arg count\n");
16 exit(1);
17 }
18argc--;
19c1 = dirname;
20c2 = argv[argc];
21while(*c1++ = *c2++);
22c1[-1] = '/';
23c1[0] = '.';
24c1[1] = '\0';
25if(filetype(dirname) != S_IFDIR)
26 {
27 prs(dirname);
28 prs(" is not a directory.\n");
29 exit(1);
30 }
31
32for(i=1; i<argc; i++)
33 {
34 if(filetype(argv[i]) != S_IFREG)
35 {
36 prs(argv[i]);
37 prs(" is not an ordinary file.\n");
38 }
39 else if(fork() == 0)
40 {
41 execl("/bin/mv", "mv", argv[i], dirname,0);
42 exit(1);
43 }
44 else wait(&status);
45 }
46}
47
48filetype(filename)
49char *filename;
50{
51struct stat buf ;
52
53if(stat(filename,&buf) < 0)
54 return(-1);
55else return(buf.st_mode&S_IFMT);
56}
57
58
59prs(s)
60register char *s;
61{
62while(*s)
63 write(2, s++, 1);
64}