X-Git-Url: http://gitweb.hachti.de/?a=blobdiff_plain;f=pc-tools%2Fldc2%2Fsrc%2Fconfig.cpp;h=1a10ac7722e6b860c4ac223ffe30aeee39da7a31;hb=874a2bd89fd65e5a1763d88c218f066a424e0d04;hp=a3f14ff8f386812a76e0cd533022a03577a2a331;hpb=ea4c19a49ff6621c58e0c4bba5ab5d271a3604c8;p=h316.git diff --git a/pc-tools/ldc2/src/config.cpp b/pc-tools/ldc2/src/config.cpp index a3f14ff..1a10ac7 100644 --- a/pc-tools/ldc2/src/config.cpp +++ b/pc-tools/ldc2/src/config.cpp @@ -26,19 +26,21 @@ int cfg_output_info=0; int cfg_output_called=0; int cfg_output_exported=0; int cfg_output_unsatisfied=0; -int cfg_splitobjects=0; -int cfg_splitobjects_numbered=0; -int cfg_ignoreblock_errors=0; -int cfg_ignorechecksum_errors=0; +int cfg_split_objects=0; +int cfg_split_objects_numbered=0; +int cfg_ignore_block_errors=0; +int cfg_ignore_checksum_errors=0; int cfg_pause_on_checksum_error=0; int cfg_ignore_unknown_block_errors=0; int cfg_ignore_object_integrity_errors=0; int cfg_list_contents=1; int cfg_verbose=0; +int cfg_quiet=0; -int in_fd=0; //! File descriptor for data input -int out_fd=1; //! File descriptor for text output +int cfg_version=0; +int in_fd=0; //! File descriptor for data input +int out_fd=2; //! File descriptor for text output void do_config(int argc, char ** args){ @@ -68,19 +70,19 @@ void do_config(int argc, char ** args){ ar.add_option_switch("S","split_objects_numbered", "Split input data into distinct numbered files", - &cfg_splitobjects_numbered,true,true); + &cfg_split_objects_numbered,true,true); ar.add_option_switch("s","split_objects", "Split input data into distinct object files.", - &cfg_splitobjects,true,true); + &cfg_split_objects,true,true); ar.add_option_switch("b","ignore_block_errors", "Ignore block integrity errors. This will output broken blocks,too", - &cfg_ignoreblock_errors,true,true); + &cfg_ignore_block_errors,true,true); ar.add_option_switch("k","ignore_checksum_errors", "Ignore block checksum errors. Errors will be converted to warnings.", - &cfg_ignorechecksum_errors,true,true); + &cfg_ignore_checksum_errors,true,true); ar.add_option_switch("p","pause_on_checksum_error", "Wait for user input on checksum error.", @@ -96,8 +98,16 @@ Errors will be converted to warnings.", &cfg_ignore_object_integrity_errors,true,true); ar.add_option_switch("v","verbose", - "Be a bit more verbose.", + "Be a bit more verbose. This overrides -q.", &cfg_verbose,true,true); + + ar.add_option_switch("q","quiet", + "Be quiet. All warning messages are suppressed.", + &cfg_quiet,true,true); + + ar.add_option_switch("V","version", + "Output version information and exit.", + &cfg_version,false,true); ar.add_option_value("i","in_file", "specify input file", @@ -126,62 +136,72 @@ Errors will be converted to warnings.", // If there's a config file mentioned in the environment, take it! char * env_ldc_config=getenv("LDC_CONFIG"); if(env_ldc_config){ - fprintf(stderr,"Using config file: \"%s\"\n",env_ldc_config); - if(dump_vector_err(ar.read_file(env_ldc_config))){ - dump_vector_err(ar.get_help()); + if (cfg_verbose) fprintf(stderr,"Using config file: \"%s\"\n",env_ldc_config); + if(dump_vector_fp(ar.read_file(env_ldc_config),stderr)){ + dump_vector_fp(ar.get_help(),stderr); exit(1); } } // Process command line first time - if(dump_vector_err(ar.read_args(argc,args))){ - dump_vector_err(ar.get_help()); + if(dump_vector_fp(ar.read_args(argc,args),stderr)){ + dump_vector_fp(ar.get_help(),stderr); exit(7); } if (cfg_do_help) { - dump_vector_err(ar.get_help()); + dump_vector_fp(ar.get_help(),stderr); exit(0); } // If user has a config file, use it. if (cfg_config_file_set){ - fprintf(stderr,"Using config file: \"%s\"\n",cfg_config_file.c_str()); - if(dump_vector_err(ar.read_file(cfg_config_file))){ - dump_vector_err(ar.get_help()); + if (cfg_verbose) + fprintf(stderr,"Using config file: \"%s\"\n",cfg_config_file.c_str()); + if(dump_vector_fp(ar.read_file(cfg_config_file),stderr)){ + dump_vector_fp(ar.get_help(),stderr); exit(7); } // Process command line a second time to override values from config file. - if(dump_vector_err(ar.read_args(argc,args))||cfg_do_help){ - dump_vector_err(ar.get_help()); + if(dump_vector_fp(ar.read_args(argc,args),stderr)||cfg_do_help){ + dump_vector_fp(ar.get_help(),stderr); exit(7); } } if (cfg_infile_set==1){ - fprintf(stderr,"Opening file for input: \"%s\"\n",cfg_infile.c_str()); + if (cfg_verbose) + fprintf(stderr,"Opening file for input: \"%s\"\n",cfg_infile.c_str()); in_fd=open(cfg_infile.c_str(),O_RDONLY); if (in_fd<0){ - fprintf(stderr,"Error: could not open file \"%s\" for reading!\n",cfg_infile.c_str()); + fprintf(stderr,"Error: could not open file \"%s\" for reading!\n", + cfg_infile.c_str()); exit (1); } } if (cfg_outfile_set==1){ - fprintf(stderr,"Opening file for output: \"%s\"\n",cfg_outfile.c_str()); - out_fd=open(cfg_outfile.c_str(),O_WRONLY|O_TRUNC); + if (cfg_verbose) + fprintf(stderr,"Opening file for output: \"%s\"\n",cfg_outfile.c_str()); + out_fd=open(cfg_outfile.c_str(),O_CREAT|O_WRONLY|O_TRUNC,0666); if (out_fd<0){ - fprintf(stderr,"Error: could not open file \"%s\" for writing!\n",cfg_outfile.c_str()); + fprintf(stderr,"Error: could not open file \"%s\" for writing!\n", + cfg_outfile.c_str()); exit (1); } } + // Verbose overrides quiet: + if (cfg_verbose)cfg_quiet=0; + // The configuration implications according to /cfg007/ if (in_fd==0) cfg_pause_on_checksum_error=0; - if (cfg_pause_on_checksum_error==1) cfg_ignorechecksum_errors=1; + if (cfg_pause_on_checksum_error==1) cfg_ignore_checksum_errors=1; - if (cfg_output_info||cfg_output_called||cfg_output_exported||cfg_output_unsatisfied) + if (cfg_output_info||cfg_output_called||cfg_output_exported|| + cfg_output_unsatisfied|| + cfg_split_objects||cfg_split_objects_numbered) cfg_list_contents=0; }