equal
deleted
inserted
replaced
39 #include <linux/cdrom.h> |
39 #include <linux/cdrom.h> |
40 |
40 |
41 #include "cdbackup.h" |
41 #include "cdbackup.h" |
42 #include "cdrom.h" |
42 #include "cdrom.h" |
43 #include "misc.h" |
43 #include "misc.h" |
|
44 #include "debug.h" |
44 #include "version.h" |
45 #include "version.h" |
45 |
46 |
46 /* #define DEBUGOUT */ |
47 /* #define DEBUGOUT */ |
47 |
48 |
48 /* defaults */ |
49 /* defaults */ |
55 int padsize =15; /* blocks */ |
56 int padsize =15; /* blocks */ |
56 int multidisk=0; |
57 int multidisk=0; |
57 char * multicmd =0; |
58 char * multicmd =0; |
58 int verbose =0; |
59 int verbose =0; |
59 int xamode2 =0; |
60 int xamode2 =0; |
|
61 int debug =0; |
60 |
62 |
61 char **cdrec_opt=0; |
63 char **cdrec_opt=0; |
62 int cdrec_opt_count=0; |
64 int cdrec_opt_count=0; |
63 |
65 |
64 long long totalSize; |
66 long long totalSize; |
79 " -a LABEL use LABEL as CD session title\n" |
81 " -a LABEL use LABEL as CD session title\n" |
80 " -p N use a padsize of N sectors for the session (default 15)\n" |
82 " -p N use a padsize of N sectors for the session (default 15)\n" |
81 " -m enable multi-disk mode\n" |
83 " -m enable multi-disk mode\n" |
82 " -c COMMAND call COMMAND on disk change in multi-disk mode\n" |
84 " -c COMMAND call COMMAND on disk change in multi-disk mode\n" |
83 " -v be verbose\n" |
85 " -v be verbose\n" |
|
86 " -D enable DEBUG output\n" |
84 " -V prints version & exits\n" |
87 " -V prints version & exits\n" |
85 " -- pass rest of commandline to cdrecord\n" |
88 " -- pass rest of commandline to cdrecord\n" |
86 "\n", prg_name); |
89 "\n", prg_name); |
87 } |
90 } |
88 |
91 |
90 |
93 |
91 void parse_cmdline(char argc, char *argv[]) |
94 void parse_cmdline(char argc, char *argv[]) |
92 { |
95 { |
93 int i; |
96 int i; |
94 |
97 |
95 while ((i=getopt(argc,argv,"d:r:l:s:p:a:c:mvVX"))>0) { |
98 while ((i=getopt(argc,argv,"d:r:l:s:p:a:c:mvVXD"))>0) { |
96 switch (i) { |
99 switch (i) { |
97 case 'V': fprintf(stderr,"cdbackup "VERSION" (compiled "__DATE__")\n" |
100 case 'V': fprintf(stderr,"cdbackup "VERSION" (compiled "__DATE__")\n" |
98 "Copyright (C) 2000-2002\n" |
101 "Copyright (C) 2000-2002\n" |
99 "This is free software; see the source for copying conditions.\n" |
102 "This is free software; see the source for copying conditions.\n" |
100 "There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A\n" |
103 "There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A\n" |
105 case 'X': xamode2=1; break; |
108 case 'X': xamode2=1; break; |
106 case 'c': multicmd=optarg; break; |
109 case 'c': multicmd=optarg; break; |
107 case 'd': cd_dev=optarg; break; |
110 case 'd': cd_dev=optarg; break; |
108 case 'r': cdr_dev=optarg; break; |
111 case 'r': cdr_dev=optarg; break; |
109 case 'a': cd_label=optarg; break; |
112 case 'a': cd_label=optarg; break; |
|
113 case 'D': verbose=1; debug=1; |
|
114 DEBUG("cdbackup: DEBUG output enabled ("VERSION")\n"); |
|
115 break; |
110 case 'l': errno=0; cd_len=strtol(optarg,NULL,10); |
116 case 'l': errno=0; cd_len=strtol(optarg,NULL,10); |
111 if(errno==ERANGE || cd_len<1) serror("Option -l: length out of range (must be >=1)\n"); |
117 if(errno==ERANGE || cd_len<1) serror("Option -l: length out of range (must be >=1)\n"); |
112 cd_len = (long long)cd_len * (1024*1024) / CD_FRAMESIZE; /* convert to blocks */ |
118 cd_len = (long long)cd_len * (1024*1024) / CD_FRAMESIZE; /* convert to blocks */ |
113 break; |
119 break; |
114 case 's': errno=0; cd_speed=strtol(optarg,NULL,10); |
120 case 's': errno=0; cd_speed=strtol(optarg,NULL,10); |
154 MARG(p,20,"padsize=%ds",padsize); |
160 MARG(p,20,"padsize=%ds",padsize); |
155 if(xamode2) *p++="-xa2"; else *p++="-data"; |
161 if(xamode2) *p++="-xa2"; else *p++="-data"; |
156 *p++="-"; |
162 *p++="-"; |
157 *p++=0; |
163 *p++=0; |
158 |
164 |
159 if(verbose) { |
165 if(debug) { |
160 fprintf(stderr,"%s: cdrecord command:",prg_name); |
166 fprintf(stderr,"%s: cdrecord command:",prg_name); |
161 for(p=args ; *p ; p++) fprintf(stderr," %s",*p); |
167 for(p=args ; *p ; p++) fprintf(stderr," %s",*p); |
162 fprintf(stderr,"\n"); |
168 fprintf(stderr,"\n"); |
163 } |
169 } |
164 |
170 |