Skip to content
Snippets Groups Projects
opttst.cc 1.97 KiB
Newer Older
David Flitney's avatar
David Flitney committed
#include "options.h"
David Flitney's avatar
David Flitney committed

David Flitney's avatar
David Flitney committed
// $Id$ 
David Flitney's avatar
David Flitney committed

David Flitney's avatar
David Flitney committed
using namespace Utilities;
David Flitney's avatar
David Flitney committed

Option<bool> verbose(string("-V,--verbose"), false, 
		     string("switch on diagnostic messages"), 
		     false, no_argument);
Option<bool> help(string("-h,--help"), false,
		  string("display this message"),
		  false, no_argument);
Option<float> dof(string("-d,--dof"), 100.0,
		  string("number of degrees of freedom"),
		  true, requires_argument);
Option<string> mask(string("-m,--mask"), string("mask"),
		    string("brain mask volume"),
		    true, requires_argument,false);
David Flitney's avatar
David Flitney committed
Option<string> resid(string("-r,--res"), string("res4d"),
		     string("4d `residual-of-fit' image"),
		     true, requires_argument);
David Flitney's avatar
David Flitney committed
Option<int> segid(string("-s,--shared-seg-id"), -1,
		  "shared memory segment ID",
		  false, requires_argument);
David Flitney's avatar
David Flitney committed

David Flitney's avatar
David Flitney committed
string title = 
David Flitney's avatar
David Flitney committed
"opttst (Version 1.0)\n\n\
Copyright(c) 2000, University of Oxford\n\
Dave Flitney";
David Flitney's avatar
David Flitney committed

string examples =
David Flitney's avatar
David Flitney committed
"opttst --dof=<number> --mask=<filename> --res=<filename>\n\
opttst -d <number> -m <filename> -r <filename>\n\
David Flitney's avatar
David Flitney committed
opttst --verbose\n";

David Flitney's avatar
David Flitney committed
int main(unsigned int argc, char **argv) {

David Flitney's avatar
David Flitney committed
  OptionParser options(title, examples);
David Flitney's avatar
David Flitney committed

  try {

David Flitney's avatar
David Flitney committed
    options.add(verbose);
    options.add(help);
    options.add(segid);
    options.add(dof);
    options.add(mask);
    options.add(resid);
David Flitney's avatar
David Flitney committed

David Flitney's avatar
David Flitney committed
    for(unsigned int a = options.parse_command_line(argc, argv); 
David Flitney's avatar
David Flitney committed
	a < argc; a++)
David Flitney's avatar
David Flitney committed
      cout << argv[a] << endl;
  
David Flitney's avatar
David Flitney committed
    if(help.value() || 
David Flitney's avatar
David Flitney committed
       !options.check_compulsory_arguments())
      options.usage();

    dof.set_T(50);
David Flitney's avatar
David Flitney committed

    if(verbose.value()) {
      cout << "verbose = " << verbose.value() << endl;
      cout << "help = " << help.value() << endl;
David Flitney's avatar
David Flitney committed
      cout << "segid = " << segid.value() << endl;
David Flitney's avatar
David Flitney committed
      cout << "dof = " << dof.value() << endl;
      cout << "mask = " << mask.value() << endl;
      cout << "resid = " << resid.value() << endl;
    }

  } catch(X_OptionError& e) {
David Flitney's avatar
David Flitney committed
    options.usage();
David Flitney's avatar
David Flitney committed
    cerr << endl << e.what() << endl;
  } catch(std::exception &e) {
    cerr << e.what() << endl;
  }    
}