Skip to content
Snippets Groups Projects
usage.cc 1.12 KiB
Newer Older
Stephen Smith's avatar
Stephen Smith committed
/*  Copyright (C) 1999-2004 University of Oxford  */

/*  CCOPYRIGHT */
David Flitney's avatar
David Flitney committed

Stephen Smith's avatar
Stephen Smith committed
#include "options.h"
David Flitney's avatar
David Flitney committed
#include "buildno.h"
David Flitney's avatar
David Flitney committed

namespace Utilities {

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

David Flitney's avatar
David Flitney committed
  void OptionParser::usage()
David Flitney's avatar
David Flitney committed
  {
David Flitney's avatar
David Flitney committed
    cerr << endl << "Part of FSL (build " << build << ")"<< endl;
    cerr << progname_ << endl << endl;
David Flitney's avatar
David Flitney committed
    cerr << "Usage: " << endl << example_ << endl;
David Flitney's avatar
David Flitney committed

    for(Options::iterator option = options_.begin(); option != options_.end(); 
	option++)
      {
	if((*option)->compulsory() && (*option)->visible()) {
David Flitney's avatar
David Flitney committed
	  static bool banner = true;
	  if(banner) {
	    cerr << endl << "Compulsory arguments (You MUST set one or more of):" << endl;
	    banner = false;
	  }
David Flitney's avatar
David Flitney committed
	  (*option)->usage(cerr); cerr << endl;
David Flitney's avatar
David Flitney committed
    for(Options::iterator optionx = options_.begin(); optionx != options_.end(); 
	optionx++)
David Flitney's avatar
David Flitney committed
      {
David Flitney's avatar
David Flitney committed
	if(!(*optionx)->compulsory() && (*optionx)->visible()) {
David Flitney's avatar
David Flitney committed
	  static bool banner = true;
	  if(banner) {
	    cerr << endl << "Optional arguments (You may optionally specify one or more of):" << endl;
	    banner = false;
	  }
David Flitney's avatar
David Flitney committed
	  (*optionx)->usage(cerr); cerr << endl;
David Flitney's avatar
David Flitney committed
	}
      }

    cerr << endl;
    cerr << endl;
  }

}