source: trunk/bin/Parameter.cc @ 50

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

force parameter works, target removed if exist.

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