source: trunk/bin/Parameter.h @ 650

Last change on this file since 650 was 650, checked in by Peter Johansson, 13 years ago

allow caching again

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 2.5 KB
Line 
1#ifndef _theplu_svndigest_parameter_
2#define _theplu_svndigest_parameter_
3
4// $Id: Parameter.h 650 2008-06-08 02:53:59Z peter $
5
6/*
7  Copyright (C) 2006 Jari Häkkinen, Peter Johansson
8  Copyright (C) 2007 Peter Johansson
9
10  This file is part of svndigest, http://trac.thep.lu.se/svndigest
11
12  svndigest is free software; you can redistribute it and/or modify it
13  under the terms of the GNU General Public License as published by
14  the Free Software Foundation; either version 2 of the License, or
15  (at your option) any later version.
16
17  svndigest is distributed in the hope that it will be useful, but
18  WITHOUT ANY WARRANTY; without even the implied warranty of
19  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20  General Public License for more details.
21
22  You should have received a copy of the GNU General Public License
23  along with this program; if not, write to the Free Software
24  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
25  02111-1307, USA.
26*/
27
28#include "Option.h"
29
30#include <map>
31#include <string>
32
33namespace theplu {
34namespace svndigest {
35
36  // class for command line options.
37  class Parameter {
38  public:
39    Parameter( int argc, char *argv[]);
40    std::string config_file(void) const;
41    inline bool copyright(void) const { return copyright_.value(); }
42    /// @todo
43    inline bool force(void) const { return force_.value(); }
44    inline bool generate_config(void) const { return generate_config_.value(); }
45    inline bool ignore_cache(void) const { return ignore_cache_.value(); }
46    inline bool report(void) const { return report_.value(); }
47    inline bool revisions(void) const { return revisions_.value(); }
48    /// @return absolute path to root directory
49    inline const std::string& root(void) const { return root_.value(); }
50    /// @return absolute path to root node
51    inline const std::string& root_node(void) const {return root_node_.value();}
52    /// @return absolute path to target directory
53    inline const std::string& targetdir(void) const 
54    { return targetdir_.value(); }
55    inline bool verbose(void) const { return verbose_.value(); }
56
57  private:
58    void analyse(void);
59    void help(void) const;
60    void missing_argument(std::string opt) const;
61    void version(bool=false) const;
62
63    Option<std::string> config_file_;
64    Option<bool> copyright_;
65    Option<bool> force_;
66    Option<bool> generate_config_;
67    Option<bool> ignore_cache_;
68    Option<bool> report_;
69    Option<bool> revisions_;
70    Option<std::string> root_;
71    Option<std::string> root_node_;
72    Option<std::string> targetdir_;
73    Option<bool> verbose_;
74  };
75
76}} // of namespace svndigest and namespace theplu
77
78#endif
Note: See TracBrowser for help on using the repository browser.