dchroot-options.cc

Go to the documentation of this file.
00001 /* Copyright © 2005-2007  Roger Leigh <rleigh@debian.org>
00002  *
00003  * schroot is free software; you can redistribute it and/or modify it
00004  * under the terms of the GNU General Public License as published by
00005  * the Free Software Foundation; either version 2 of the License, or
00006  * (at your option) any later version.
00007  *
00008  * schroot is distributed in the hope that it will be useful, but
00009  * WITHOUT ANY WARRANTY; without even the implied warranty of
00010  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00011  * General Public License for more details.
00012  *
00013  * You should have received a copy of the GNU General Public License
00014  * along with this program; if not, write to the Free Software
00015  * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
00016  * MA  02111-1307  USA
00017  *
00018  *********************************************************************/
00019 
00020 #include <config.h>
00021 
00022 #include "dchroot-options.h"
00023 
00024 #include <cstdlib>
00025 #include <iostream>
00026 
00027 #include <boost/format.hpp>
00028 #include <boost/program_options.hpp>
00029 
00030 using std::endl;
00031 using sbuild::_;
00032 using boost::format;
00033 namespace opt = boost::program_options;
00034 using namespace dchroot;
00035 
00036 options::options ():
00037   schroot::options_base()
00038 {
00039 }
00040 
00041 options::~options ()
00042 {
00043 }
00044 
00045 void
00046 options::add_options ()
00047 {
00048   // Chain up to add general schroot options.
00049   schroot::options_base::add_options();
00050 
00051   actions.add_options()
00052     ("path,p", opt::value<std::string>(&this->chroot_path),
00053      _("Print path to selected chroot"));
00054 
00055   chroot.add_options()
00056     ("all,a",
00057      _("Select all chroots"));
00058 
00059   chrootenv.add_options()
00060     ("directory", opt::value<std::string>(&this->directory),
00061      _("Directory to use"))
00062     ("preserve-environment,d",
00063      _("Preserve user environment"));
00064 }
00065 
00066 void
00067 options::check_options ()
00068 {
00069   // Chain up to check general schroot options.
00070   schroot::options_base::check_options();
00071 
00072   if (vm.count("path"))
00073     this->action = ACTION_LOCATION;
00074 
00075   if (vm.count("all"))
00076     {
00077       this->all = false;
00078       this->all_chroots = true;
00079       this->all_sessions = false;
00080     }
00081 
00082   if (vm.count("preserve-environment"))
00083     this->preserve = true;
00084 
00085   if (this->quiet && this->verbose)
00086     {
00087       sbuild::log_warning()
00088         << _("--quiet and --verbose may not be used at the same time")
00089         << endl;
00090       sbuild::log_info() << _("Using verbose output") << endl;
00091     }
00092 
00093   if (!this->chroots.empty() && all_used())
00094     {
00095       sbuild::log_warning()
00096         << _("--chroot and --all may not be used at the same time")
00097         << endl;
00098       sbuild::log_info() << _("Using --chroots only") << endl;
00099       this->all = this->all_chroots = this->all_sessions = false;
00100     }
00101 
00102   if (this->all == true)
00103     {
00104       this->all_chroots = true;
00105       this->all_sessions = true;
00106     }
00107 }

Generated on Sun Jul 8 21:23:55 2007 for schroot by  doxygen 1.5.2