Changeset 625 for trunk/bin


Ignore:
Timestamp:
Apr 24, 2008, 12:44:52 AM (13 years ago)
Author:
Peter Johansson
Message:

made function Parameter::help() const

Location:
trunk/bin
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/bin/Parameter.cc

    r620 r625  
    4242
    4343  Parameter::Parameter( int argc, char *argv[])
    44   {
    45     defaults();
     44    : config_file_(""), copyright_(false), force_(false),
     45      generate_config_(false), ignore_cache_(false), report_(true),
     46      revisions_(false), root_("."), targetdir_("."), verbose_(false)
     47  {
    4648    for (int i=1; i<argc; ++i) {
    4749      bool ok=false;
     
    5456      if (myargv=="--config-file"){
    5557        if (value.size()) {
    56           config_file_= value;
     58          config_file_.value()= value;
    5759          ok=true;
    5860        }
    5961        else if (++i<argc){
    60           config_file_= std::string(argv[i]);
     62          config_file_.value()= std::string(argv[i]);
    6163          ok=true;
    6264        }
    6365      }
    6466      else if (myargv=="--copyright"){
    65           copyright_=true;
     67          copyright_.value()=true;
    6668          ok=true;
    6769      }
    6870      else if (myargv=="-f" || myargv=="--force"){
    69           force_=true;
     71          force_.value()=true;
    7072          ok=true;
    7173      }
    7274      else if (myargv=="-g" || myargv=="--generate-config"){
    73           generate_config_=true;
     75          generate_config_.value()=true;
    7476          ok=true;
    7577      }
     
    7981      }
    8082      else if (myargv=="--ignore-cache"){
    81           ignore_cache_=true;
     83          ignore_cache_.value()=true;
    8284          ok=true;
    8385      }
    8486      else if (myargv=="-r" || myargv=="--root"){
    8587        if (value.size()) {
    86           root_= value;
     88          root_.value()= value;
    8789          ok=true;
    8890        }
    8991        else if (++i<argc){
    90           root_= std::string(argv[i]);
     92          root_.value()= std::string(argv[i]);
    9193          ok=true;
    9294        }
    9395      }
    9496      else if (myargv=="--report") {
    95           report_=true;
     97          report_.value()=true;
    9698          ok=true;
    9799      }
    98100      else if (myargv=="--no-report") {
    99           report_=false;
     101          report_.value()=false;
    100102          ok=true;
    101103      }
    102104      else if (myargv=="--revisions") {
    103           revisions_=true;
     105          revisions_.value()=true;
    104106          ok=true;
    105107      }
    106108      else if (myargv=="-t" || myargv=="--target"){
    107109        if (value.size()) {
    108           targetdir_= value;
     110          targetdir_.value()= value;
    109111          ok=true;
    110112        }
    111113        else if (++i<argc){
    112           targetdir_= std::string(argv[i]);
     114          targetdir_.value()= std::string(argv[i]);
    113115          ok=true;
    114116        }
    115117      }
    116118      else if (myargv=="-v" || myargv=="--verbose"){
    117           verbose_=true;
     119          verbose_.value()=true;
    118120          ok=true;
    119121      }
    120122      else if (myargv=="--version"){
    121         version_=true;
    122         ok=true;
     123        version();
     124        exit(0);
    123125      }
    124126      else if (myargv=="-vf" || myargv=="-fv"){
    125           verbose_=true;
    126           force_=true;
     127          verbose_.value()=true;
     128          force_.value()=true;
    127129          ok=true;
    128130      }
     
    133135    }
    134136
    135     if (version_){
    136       version(verbose_);
    137       exit(0);
    138     }     
    139137    analyse();
    140138  }
     
    147145    string workdir(pwd()); // remember current working directory (cwd).
    148146
    149     bool root_ok = node_exist(root_) && !access_rights(root_, "r");
     147    bool root_ok = ( node_exist(root_.value()) &&
     148                     !access_rights(root_.value(), "r") );
    150149   
    151150    if (root_ok) {
    152151      // Check that root_ is a directory
    153152      struct stat nodestat;
    154       stat(root_.c_str(), &nodestat);
     153      stat(root_.value().c_str(), &nodestat);
    155154      if (!S_ISDIR(nodestat.st_mode))
    156         throw runtime_error(string("svndigest: accessing `") + root_ +
     155        throw runtime_error(string("svndigest: accessing `") + root_.value() +
    157156                            "': Not a directory.");
    158157    }
    159158
    160159    // Checking that root_ exists and retrieve the absolute path to root_
    161     if (!root_ok || chdir(root_.c_str()))
    162       throw runtime_error(string("svndigest: Root directory (") + root_ +
     160    if (!root_ok || chdir(root_.value().c_str()))
     161      throw runtime_error(string("svndigest: Root directory (") + root_.value() +
    163162                          ") access failed.");
    164     root_ = pwd();
     163    root_.value() = pwd();
    165164
    166165     
     
    172171    // Checking that targetdir_ exists and retrieve the absolute path
    173172    // to targetdir_
    174     if (chdir(targetdir_.c_str()))
    175       throw runtime_error(string("svndigest: Target directory (") + targetdir_ +
    176                           ") access failed.");
    177     targetdir_ = pwd();
     173    if (chdir(targetdir_.value().c_str()))
     174      throw runtime_error(string("svndigest: Target directory (") +
     175                          targetdir_.value() + ") access failed.");
     176    targetdir_.value() = pwd();
    178177    // Checking write permissions for targetdir_
    179     if (access_rights(targetdir_,"w"))
     178    if (access_rights(targetdir_.value(),"w"))
    180179      throw runtime_error(string("svndigest: No write permission on target ") +
    181                                  "directory (" + targetdir_ +").");
     180                                 "directory (" + targetdir_.value() +").");
    182181
    183182    // return back to cwd
     
    191190  {
    192191    // not default
    193     if (!config_file_.empty())
    194       return config_file_;
     192    if (!config_file_.value().empty())
     193      return config_file_.value();
    195194   
    196195    // default behaviour
     
    199198
    200199
    201   void Parameter::defaults(void)
    202   {
    203     config_file_ = "";
    204     copyright_=false;
    205     force_=false;
    206     generate_config_=false;
    207     ignore_cache_=false;
    208     report_=true;
    209     revisions_=false;
    210     root_=".";
    211     targetdir_=".";
    212     verbose_=false;
    213     version_=false;
    214   }
    215 
    216 
    217   void Parameter::help(void)
    218   {
    219     defaults();
    220 
     200  void Parameter::help(void) const
     201  {
    221202    ColumnStream cs(std::cout, 1);
    222203    cs.width(0)=79;
     
    249230         << "instead of dates [dates]\n"
    250231         << "-r, --root=ROOT\tsvn controlled directory to perform "
    251          << "statistics calculation on [" << root_ << "]\n"
    252          << "-t, --target=TARGET\toutput directory [" << targetdir_ << "]\n"
     232         << "statistics calculation on [" << root_.default_value() << "]\n"
     233         << "-t, --target=TARGET\toutput directory ["
     234         << targetdir_.default_value() << "]\n"
    253235         << "-v, --verbose\texplain what is being done\n"
    254236         << "    --version\tprint version information and exit\n";
  • trunk/bin/Parameter.h

    r540 r625  
    2626*/
    2727
     28#include "Option.h"
     29
    2830#include <map>
    2931#include <string>
     
    3739    Parameter( int argc, char *argv[]);
    3840    std::string config_file(void) const;
    39     inline bool copyright(void) const { return copyright_; }
     41    inline bool copyright(void) const { return copyright_.value(); }
    4042    /// @todo
    41     inline bool force(void) const { return force_; }
    42     inline bool generate_config(void) const { return generate_config_; }
    43     inline bool ignore_cache(void) const { return ignore_cache_; }
    44     inline bool report(void) const { return report_; }
    45     inline bool revisions(void) const { return revisions_; }
     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(); }
    4648    /// @return absolute path to root directory
    47     inline const std::string& root(void) const { return root_; }
     49    inline const std::string& root(void) const { return root_.value(); }
    4850    /// @return absolute path to target directory
    49     inline const std::string& targetdir(void) const { return targetdir_; }
    50     inline bool verbose(void) const { return verbose_; }
     51    inline const std::string& targetdir(void) const
     52    { return targetdir_.value(); }
     53    inline bool verbose(void) const { return verbose_.value(); }
    5154
    5255  private:
    5356    void analyse(void);
    54     void defaults(void);
    55     void help(void);
     57    void help(void) const;
    5658    void version(bool=false) const;
    5759
    58     std::string config_file_;
    59     bool copyright_;
    60     bool force_;
    61     bool generate_config_;
    62     bool ignore_cache_;
    63     bool report_;
    64     bool revisions_;
    65     std::string root_;
    66     std::string targetdir_;
    67     bool verbose_;
    68     bool version_;
     60    Option<std::string> config_file_;
     61    Option<bool> copyright_;
     62    Option<bool> force_;
     63    Option<bool> generate_config_;
     64    Option<bool> ignore_cache_;
     65    Option<bool> report_;
     66    Option<bool> revisions_;
     67    Option<std::string> root_;
     68    Option<std::string> targetdir_;
     69    Option<bool> verbose_;
    6970  };
    7071
Note: See TracChangeset for help on using the changeset viewer.