Merge branch 'master' of git.distorted.org.uk:~mdw/publish/public-git/dvdrip
[dvdrip] / dvd-id.c
1 #include "lib.h"
2
3 static void usage(FILE *fp)
4 { fprintf(fp, "usage: %s [-IV] DEVICE ...\n", prog); }
5
6 int main(int argc, char *argv[])
7 {
8 char id[MAXIDSZ];
9 int i, opt, st = 0;
10 unsigned f = 0, dif = 0;
11 static dvd_reader_t *dvd;
12 #define f_bogus 1u
13
14 set_prog(argv[0]);
15 for (;;) {
16 opt = getopt(argc, argv, "hIV"); if (opt < 0) break;
17 switch (opt) {
18 case 'h': usage(stderr); exit(0);
19 case 'I': dif |= DIF_MUSTIFOHASH; break;
20 case 'V': dif |= DIF_MUSTVOLINF; break;
21 default: f |= f_bogus; break;
22 }
23 }
24 if (argc - optind < 1) f |= f_bogus;
25 if (f&f_bogus) { usage(stderr); exit(2); }
26 setlocale(LC_ALL, "");
27 progress_init(&progress);
28
29 for (i = optind; i < argc; i++) {
30 open_dvd(argv[i], O_RDONLY, 0, &dvd);
31 if (dvd_id(id, dvd, dif, argv[i]))
32 st = 2;
33 else {
34 if (argc - optind > 1) printf("%s: ", argv[i]);
35 printf("%s\n", id);
36 }
37 DVDClose(dvd);
38 }
39
40 progress_free(&progress);
41 return (st);
42 }