source: trunk/bin/Parameter.cc @ 58

Last change on this file since 58 was 54, checked in by Jari Häkkinen, 16 years ago

Changed command line paramters. Last [path] is invalid now, use -r.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 2.4 KB
Line 
1// $Id: Parameter.cc 54 2006-01-15 01:32:27Z jari $
2
3#include "Parameter.h"
4
5#include <iostream>
6#include <stdexcept>
7#include <string>
8
9namespace theplu {
10namespace svnstat {
11
12  Parameter::Parameter(const int argc,const char *argv[])
13    : force_(false), root_("."), targetdir_("svnstat_output"), verbose_(false)
14  {
15 
16    for (int i=1; i<argc; i++) {
17      bool ok=false;
18      std::string myargv(argv[i]);
19      if (myargv=="-f" || myargv=="--force"){
20          force_=true;
21          ok=true;
22      }
23      else if (myargv=="-h" || myargv=="--help"){
24        help();
25        exit(0);      // always exit after printing help
26      }
27      else if (myargv=="-r" || myargv=="--root"){
28        if (++i<argc){
29          root_= std::string(argv[i]);
30          ok=true;
31        }
32      }
33      else if (myargv=="-t" || myargv=="--target"){
34        if (++i<argc){
35          targetdir_= std::string(argv[i]);
36          ok=true;
37        }
38      }
39      else if (myargv=="-v" || myargv=="--verbose"){
40          verbose_=true;
41          ok=true;
42      }
43      else if (myargv=="--version"){
44          version();
45          exit(0);
46      }
47
48      if (!ok)
49        throw std::runtime_error("svnstat: invalid option: " + myargv +
50                                 "\nType 'svnstat --help' for usage.");
51    }
52
53    analyse();
54  }
55
56
57  void Parameter::analyse(void)
58  {
59  }
60
61
62  void Parameter::help(void)
63  {
64    std::cout << "usage: svnstat [options]\n"
65              << "\n"
66              << "svnstat traverses a directory structure (controlled by\n"
67              << "subversion) and calculates developer statistics entries.\n"
68              << "The top level directory of the directory structure to\n"
69              << "traverse is set with the -t option."
70              << "The result is written to a\n"
71              << "sub-directory, svnstat, that is created in the current\n"
72              << "working directory.\n"
73              << "\n"
74              << "Valid options:\n"
75              << "  -f [--force]   : remove target directory/file if it exists\n"
76              << "                   [no force]. NOTE recursive delete.\n"
77              << "  -h [--help]    : display this help and exit\n"
78              << "  -r [--root] arg : svn controlled directory to perform\n"
79              << "                    statistics calculation on [.]\n"
80              << "  -t [--target] arg : output directory [svnstat_output]\n"
81              << "  -v [--verbose] : explain what is being done\n"
82              << "  --version      : print version information and exit\n"
83              << std::endl;
84  }
85
86
87  void Parameter::version(void)
88  {
89    std::cout << "svnstat 0.1\n"
90              << "Written by Jari Hakkinen and Peter Johansson.\n"
91              << std::endl;
92  }
93
94}} // of namespace wenni and namespace theplu
Note: See TracBrowser for help on using the repository browser.