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