summaryrefslogtreecommitdiff
path: root/libexec
diff options
context:
space:
mode:
authorRoger Leigh <rleigh@debian.org>2013-05-04 22:50:21 +0100
committerRoger Leigh <rleigh@debian.org>2013-05-04 22:50:21 +0100
commit4ec183f4fa454c8ddbe41e306ab9ba12e098e098 (patch)
tree4d959cd9ea4502c2b5a2eb5be4c315b781e1f5f5 /libexec
parentd630103fc2fce03441f1776805004614f01b5cee (diff)
downloadschroot-4ec183f4fa454c8ddbe41e306ab9ba12e098e098.tar.gz
libexec: Sources use namespace scoping
Enclose in namespace as for sbuild sources.
Diffstat (limited to 'libexec')
-rw-r--r--libexec/listmounts/listmounts.cc6
-rw-r--r--libexec/listmounts/main.cc140
-rw-r--r--libexec/listmounts/options.cc92
-rw-r--r--libexec/mount/main.cc484
-rw-r--r--libexec/mount/mount.cc6
-rw-r--r--libexec/mount/options.cc118
6 files changed, 429 insertions, 417 deletions
diff --git a/libexec/listmounts/listmounts.cc b/libexec/listmounts/listmounts.cc
index 7ba1be93..46d3cd1f 100644
--- a/libexec/listmounts/listmounts.cc
+++ b/libexec/listmounts/listmounts.cc
@@ -18,8 +18,8 @@
#include <config.h>
-#include <listmounts/options.h>
-#include <listmounts/main.h>
+#include <libexec/listmounts/options.h>
+#include <libexec/listmounts/main.h>
#include <bin-common/run.h>
@@ -27,8 +27,6 @@ using std::endl;
using boost::format;
namespace opt = boost::program_options;
-using namespace schroot_listmounts;
-
/**
* Main routine.
*
diff --git a/libexec/listmounts/main.cc b/libexec/listmounts/main.cc
index 7ecaedd1..a4118c37 100644
--- a/libexec/listmounts/main.cc
+++ b/libexec/listmounts/main.cc
@@ -21,7 +21,7 @@
#include <sbuild/mntstream.h>
#include <sbuild/util.h>
-#include <listmounts/main.h>
+#include <libexec/listmounts/main.h>
#include <cerrno>
#include <climits>
@@ -41,83 +41,87 @@ using std::endl;
using boost::format;
using sbuild::_;
using sbuild::N_;
-using namespace schroot_listmounts;
-template<>
-sbuild::error<main::error_code>::map_type
-sbuild::error<main::error_code>::error_strings =
- {
- // TRANSLATORS: %1% = file
- {main::FIND, N_("Failed to find ‘%1%’")}
- };
-
-main::main (options::ptr& options):
- bin_common::main("schroot-listmounts",
- // TRANSLATORS: '...' is an ellipsis e.g. U+2026,
- // and '-' is an em-dash.
- _("[OPTION…] — list mount points"),
- options,
- false),
- opts(options)
-{
-}
-
-main::~main ()
+namespace schroot_listmounts
{
-}
-void
-main::action_listmounts ()
-{
- std::string to_find = sbuild::normalname(this->opts->mountpoint);
+ template<>
+ sbuild::error<main::error_code>::map_type
+ sbuild::error<main::error_code>::error_strings =
+ {
+ // TRANSLATORS: %1% = file
+ {schroot_listmounts::main::FIND, N_("Failed to find ‘%1%’")}
+ };
+
+ main::main (options::ptr& options):
+ bin_common::main("schroot-listmounts",
+ // TRANSLATORS: '...' is an ellipsis e.g. U+2026,
+ // and '-' is an em-dash.
+ _("[OPTION…] — list mount points"),
+ options,
+ false),
+ opts(options)
+ {
+ }
+ main::~main ()
{
- // NOTE: This is a non-standard GNU extension.
- char *rpath = realpath(to_find.c_str(), NULL);
- if (rpath == 0)
- throw error(to_find, FIND, strerror(errno));
-
- to_find = rpath;
- free(rpath);
- rpath = 0;
}
- // Check mounts.
- sbuild::mntstream mounts("/proc/mounts");
- sbuild::mntstream::mntentry entry;
- sbuild::string_list mountlist;
+ void
+ main::action_listmounts ()
+ {
+ std::string to_find = sbuild::normalname(this->opts->mountpoint);
- while (mounts >> entry)
{
- std::string mount_dir(entry.directory);
- if (to_find == "/" ||
- (mount_dir.find(to_find) == 0 &&
- (// Names are the same.
- mount_dir.size() == to_find.size() ||
- // Must have a following /, or not the same directory.
- (mount_dir.size() > to_find.size() &&
- mount_dir[to_find.size()] == '/'))))
- mountlist.push_back(mount_dir);
+ // NOTE: This is a non-standard GNU extension.
+ char *rpath = realpath(to_find.c_str(), NULL);
+ if (rpath == 0)
+ throw error(to_find, FIND, strerror(errno));
+
+ to_find = rpath;
+ free(rpath);
+ rpath = 0;
}
- for (sbuild::string_list::const_reverse_iterator mount = mountlist.rbegin();
- mount != mountlist.rend();
- ++mount)
- std::cout << *mount << '\n';
- std::cout << std::flush;
-}
+ // Check mounts.
+ sbuild::mntstream mounts("/proc/mounts");
+ sbuild::mntstream::mntentry entry;
+ sbuild::string_list mountlist;
+
+ while (mounts >> entry)
+ {
+ std::string mount_dir(entry.directory);
+ if (to_find == "/" ||
+ (mount_dir.find(to_find) == 0 &&
+ (// Names are the same.
+ mount_dir.size() == to_find.size() ||
+ // Must have a following /, or not the same directory.
+ (mount_dir.size() > to_find.size() &&
+ mount_dir[to_find.size()] == '/'))))
+ mountlist.push_back(mount_dir);
+ }
+
+ for (sbuild::string_list::const_reverse_iterator mount = mountlist.rbegin();
+ mount != mountlist.rend();
+ ++mount)
+ std::cout << *mount << '\n';
+ std::cout << std::flush;
+ }
+
+ int
+ main::run_impl ()
+ {
+ if (this->opts->action == options::ACTION_HELP)
+ action_help(std::cerr);
+ else if (this->opts->action == options::ACTION_VERSION)
+ action_version(std::cerr);
+ else if (this->opts->action == options::ACTION_LISTMOUNTS)
+ action_listmounts();
+ else
+ assert(0); // Invalid action.
+
+ return EXIT_SUCCESS;
+ }
-int
-main::run_impl ()
-{
- if (this->opts->action == options::ACTION_HELP)
- action_help(std::cerr);
- else if (this->opts->action == options::ACTION_VERSION)
- action_version(std::cerr);
- else if (this->opts->action == options::ACTION_LISTMOUNTS)
- action_listmounts();
- else
- assert(0); // Invalid action.
-
- return EXIT_SUCCESS;
}
diff --git a/libexec/listmounts/options.cc b/libexec/listmounts/options.cc
index 122e9f41..6c13f610 100644
--- a/libexec/listmounts/options.cc
+++ b/libexec/listmounts/options.cc
@@ -20,7 +20,7 @@
#include <sbuild/i18n.h>
-#include <listmounts/options.h>
+#include <libexec/listmounts/options.h>
#include <cstdlib>
#include <iostream>
@@ -32,59 +32,63 @@ using std::endl;
using boost::format;
using sbuild::_;
namespace opt = boost::program_options;
-using namespace schroot_listmounts;
-const options::action_type options::ACTION_LISTMOUNTS ("listmounts");
-
-options::options ():
- bin_common::options(),
- mountpoint(),
- mount(_("Mount"))
+namespace schroot_listmounts
{
-}
-options::~options ()
-{
-}
+ const options::action_type options::ACTION_LISTMOUNTS ("listmounts");
-void
-options::add_options ()
-{
- // Chain up to add basic options.
- bin_common::options::add_options();
+ options::options ():
+ bin_common::options(),
+ mountpoint(),
+ mount(_("Mount"))
+ {
+ }
- action.add(ACTION_LISTMOUNTS);
- action.set_default(ACTION_LISTMOUNTS);
+ options::~options ()
+ {
+ }
- mount.add_options()
- ("mountpoint,m", opt::value<std::string>(&this->mountpoint),
- _("Mountpoint to check (full path)"));
-}
+ void
+ options::add_options ()
+ {
+ // Chain up to add basic options.
+ bin_common::options::add_options();
-void
-options::add_option_groups ()
-{
- // Chain up to add basic option groups.
- bin_common::options::add_option_groups();
+ action.add(ACTION_LISTMOUNTS);
+ action.set_default(ACTION_LISTMOUNTS);
+
+ mount.add_options()
+ ("mountpoint,m", opt::value<std::string>(&this->mountpoint),
+ _("Mountpoint to check (full path)"));
+ }
+
+ void
+ options::add_option_groups ()
+ {
+ // Chain up to add basic option groups.
+ bin_common::options::add_option_groups();
#ifndef BOOST_PROGRAM_OPTIONS_DESCRIPTION_OLD
- if (!mount.options().empty())
+ if (!mount.options().empty())
#else
- if (!mount.primary_keys().empty())
+ if (!mount.primary_keys().empty())
#endif
- {
- visible.add(mount);
- global.add(mount);
- }
-}
-
-void
-options::check_options ()
-{
- // Chain up to check basic options.
- bin_common::options::check_options();
+ {
+ visible.add(mount);
+ global.add(mount);
+ }
+ }
+
+ void
+ options::check_options ()
+ {
+ // Chain up to check basic options.
+ bin_common::options::check_options();
+
+ if (this->action == ACTION_LISTMOUNTS &&
+ this->mountpoint.empty())
+ throw error(_("No mount point specified"));
+ }
- if (this->action == ACTION_LISTMOUNTS &&
- this->mountpoint.empty())
- throw error(_("No mount point specified"));
}
diff --git a/libexec/mount/main.cc b/libexec/mount/main.cc
index 88405eef..f01c87e4 100644
--- a/libexec/mount/main.cc
+++ b/libexec/mount/main.cc
@@ -21,7 +21,7 @@
#include <sbuild/mntstream.h>
#include <sbuild/util.h>
-#include <mount/main.h>
+#include <libexec/mount/main.h>
#include <cerrno>
#include <climits>
@@ -45,254 +45,258 @@ using std::endl;
using boost::format;
using sbuild::_;
using sbuild::N_;
-using namespace schroot_mount;
-template<>
-sbuild::error<main::error_code>::map_type
-sbuild::error<main::error_code>::error_strings =
- {
- {main::CHILD_FORK, N_("Failed to fork child")},
- {main::CHILD_WAIT, N_("Wait for child failed")},
- // TRANSLATORS: %1% = command name
- {main::EXEC, N_("Failed to execute “%1%”")},
- {main::REALPATH, N_("Failed to resolve path “%1%”")}
- };
-
-main::main (options::ptr& options):
- bin_common::main("schroot-mount",
- // TRANSLATORS: '...' is an ellipsis e.g. U+2026,
- // and '-' is an em-dash.
- _("[OPTION…] — mount filesystems"),
- options,
- false),
- opts(options)
+namespace schroot_mount
{
-}
-
-main::~main ()
-{
-}
-std::string
-main::resolve_path (std::string const& mountpoint)
-{
- // Ensure entry has a leading / to prevent security hole where
- // mountpoint might be outside the chroot.
- std::string absmountpoint(mountpoint);
- if (absmountpoint.empty() || absmountpoint[0] != '/')
- absmountpoint = std::string("/") + absmountpoint;
-
- char *resolved_path = realpath(opts->mountpoint.c_str(), 0);
- if (!resolved_path)
- throw error(opts->mountpoint, REALPATH, strerror(errno));
- std::string basepath(resolved_path);
- std::free(resolved_path);
-
- std::string directory(opts->mountpoint + absmountpoint);
- // Canonicalise path to remove any symlinks.
- resolved_path = realpath(directory.c_str(), 0);
- if (resolved_path == 0)
- {
- // The path is either not present or is an invalid link. If
- // it's not present, we'll create it later. If it's a link,
- // bail out now.
- bool link = false;
- try
- {
- if (sbuild::stat(directory, true).is_link())
- link = true;
- }
- catch (...)
- {} // Does not exist, not a link
-
- if (link)
- throw error(directory, REALPATH, strerror(ENOTDIR));
- else
- {
- // Try validating the parent directory.
- sbuild::string_list dirs = sbuild::split_string(mountpoint, "/");
- if (dirs.size() > 1) // Recurse if possible, otherwise continue
- {
- std::string saveddir = *dirs.rbegin();
- dirs.pop_back();
-
- std::string newpath(resolve_path(sbuild::string_list_to_string(dirs, "/")));
- directory = newpath + "/" + saveddir;
- }
- }
- }
- else
+ template<>
+ sbuild::error<main::error_code>::map_type
+ sbuild::error<main::error_code>::error_strings =
{
- directory = resolved_path;
- std::free(resolved_path);
- }
- // If the link was absolute (i.e. points somewhere on the host,
- // outside the chroot, make sure that this is modified to be
- // inside.
- if (directory.size() < basepath.size() ||
- directory.substr(0,basepath.size()) != basepath)
- directory = basepath + directory;
-
- return directory;
-}
-
-void
-main::action_mount ()
-{
- // Check mounts.
- sbuild::mntstream mounts(opts->fstab);
-
- sbuild::mntstream::mntentry entry;
+ {schroot_mount::main::CHILD_FORK, N_("Failed to fork child")},
+ {schroot_mount::main::CHILD_WAIT, N_("Wait for child failed")},
+ // TRANSLATORS: %1% = command name
+ {schroot_mount::main::EXEC, N_("Failed to execute “%1%”")},
+ {schroot_mount::main::REALPATH, N_("Failed to resolve path “%1%”")}
+ };
+
+ main::main (options::ptr& options):
+ bin_common::main("schroot-mount",
+ // TRANSLATORS: '...' is an ellipsis e.g. U+2026,
+ // and '-' is an em-dash.
+ _("[OPTION…] — mount filesystems"),
+ options,
+ false),
+ opts(options)
+ {
+ }
- while (mounts >> entry)
- {
- std::string directory = resolve_path(entry.directory);
-
- if (!boost::filesystem::exists(directory))
- {
- sbuild::log_debug(sbuild::DEBUG_INFO)
- << boost::format("Creating ‘%1%' in '%2%’")
- % entry.directory
- % opts->mountpoint
- << std::endl;
-
- if (!opts->dry_run)
- {
- try
- {
- boost::filesystem::create_directories(directory);
- }
- catch (std::exception const& e)
- {
- sbuild::log_exception_error(e);
- exit(EXIT_FAILURE);
- }
- catch (...)
- {
- sbuild::log_error()
- << _("An unknown exception occurred") << std::endl;
- exit(EXIT_FAILURE);
- }
- }
- }
+ main::~main ()
+ {
+ }
+ std::string
+ main::resolve_path (std::string const& mountpoint)
+ {
+ // Ensure entry has a leading / to prevent security hole where
+ // mountpoint might be outside the chroot.
+ std::string absmountpoint(mountpoint);
+ if (absmountpoint.empty() || absmountpoint[0] != '/')
+ absmountpoint = std::string("/") + absmountpoint;
+
+ char *resolved_path = realpath(opts->mountpoint.c_str(), 0);
+ if (!resolved_path)
+ throw error(opts->mountpoint, REALPATH, strerror(errno));
+ std::string basepath(resolved_path);
+ std::free(resolved_path);
+
+ std::string directory(opts->mountpoint + absmountpoint);
+ // Canonicalise path to remove any symlinks.
+ resolved_path = realpath(directory.c_str(), 0);
+ if (resolved_path == 0)
+ {
+ // The path is either not present or is an invalid link. If
+ // it's not present, we'll create it later. If it's a link,
+ // bail out now.
+ bool link = false;
+ try
+ {
+ if (sbuild::stat(directory, true).is_link())
+ link = true;
+ }
+ catch (...)
+ {} // Does not exist, not a link
+
+ if (link)
+ throw error(directory, REALPATH, strerror(ENOTDIR));
+ else
+ {
+ // Try validating the parent directory.
+ sbuild::string_list dirs = sbuild::split_string(mountpoint, "/");
+ if (dirs.size() > 1) // Recurse if possible, otherwise continue
+ {
+ std::string saveddir = *dirs.rbegin();
+ dirs.pop_back();
+
+ std::string newpath(resolve_path(sbuild::string_list_to_string(dirs, "/")));
+ directory = newpath + "/" + saveddir;
+ }
+ }
+ }
+ else
+ {
+ directory = resolved_path;
+ std::free(resolved_path);
+ }
+ // If the link was absolute (i.e. points somewhere on the host,
+ // outside the chroot, make sure that this is modified to be
+ // inside.
+ if (directory.size() < basepath.size() ||
+ directory.substr(0,basepath.size()) != basepath)
+ directory = basepath + directory;
+
+ return directory;
+ }
+
+ void
+ main::action_mount ()
+ {
+ // Check mounts.
+ sbuild::mntstream mounts(opts->fstab);
+
+ sbuild::mntstream::mntentry entry;
+
+ while (mounts >> entry)
+ {
+ std::string directory = resolve_path(entry.directory);
+
+ if (!boost::filesystem::exists(directory))
+ {
+ sbuild::log_debug(sbuild::DEBUG_INFO)
+ << boost::format("Creating ‘%1%' in '%2%’")
+ % entry.directory
+ % opts->mountpoint
+ << std::endl;
+
+ if (!opts->dry_run)
+ {
+ try
+ {
+ boost::filesystem::create_directories(directory);
+ }
+ catch (std::exception const& e)
+ {
+ sbuild::log_exception_error(e);
+ exit(EXIT_FAILURE);
+ }
+ catch (...)
+ {
+ sbuild::log_error()
+ << _("An unknown exception occurred") << std::endl;
+ exit(EXIT_FAILURE);
+ }
+ }
+ }
+
+ sbuild::log_debug(sbuild::DEBUG_INFO)
+ << boost::format("Mounting ‘%1%’ on ‘%2%’")
+ % entry.filesystem_name
+ % directory
+ << std::endl;
+
+ if (!opts->dry_run)
+ {
+ sbuild::string_list command;
+ command.push_back("/bin/mount");
+ if (opts->verbose)
+ command.push_back("-v");
+ command.push_back("-t");
+ command.push_back(entry.type);
+ command.push_back("-o");
+ command.push_back(entry.options);
+ command.push_back(entry.filesystem_name);
+ command.push_back(directory);
+
+ int status = run_child(command[0], command, sbuild::environment());
+
+ if (status)
+ exit(status);
+ }
+ }
+ }
+
+ int
+ main::run_child (std::string const& file,
+ sbuild::string_list const& command,
+ sbuild::environment const& env)
+ {
+ int exit_status = 0;
+ pid_t pid;
+
+ if ((pid = fork()) == -1)
+ {
+ throw error(CHILD_FORK, strerror(errno));
+ }
+ else if (pid == 0)
+ {
+ try
+ {
+ sbuild::log_debug(sbuild::DEBUG_INFO)
+ << "mount_main: executing "
+ << sbuild::string_list_to_string(command, ", ")
+ << std::endl;
+ exec(file, command, env);
+ error e(file, EXEC, strerror(errno));
+ sbuild::log_exception_error(e);
+ }
+ catch (std::exception const& e)
+ {
+ sbuild::log_exception_error(e);
+ }
+ catch (...)
+ {
+ sbuild::log_error()
+ << _("An unknown exception occurred") << std::endl;
+ }
+ _exit(EXIT_FAILURE);
+ }
+ else
+ {
+ wait_for_child(pid, exit_status);
+ }
+
+ if (exit_status)
sbuild::log_debug(sbuild::DEBUG_INFO)
- << boost::format("Mounting ‘%1%’ on ‘%2%’")
- % entry.filesystem_name
- % directory
+ << "mount_main: " << file
+ << " failed with status " << exit_status
+ << std::endl;
+ else
+ sbuild::log_debug(sbuild::DEBUG_INFO)
+ << "mount_main: " << file
+ << " succeeded"
<< std::endl;
- if (!opts->dry_run)
- {
- sbuild::string_list command;
- command.push_back("/bin/mount");
- if (opts->verbose)
- command.push_back("-v");
- command.push_back("-t");
- command.push_back(entry.type);
- command.push_back("-o");
- command.push_back(entry.options);
- command.push_back(entry.filesystem_name);
- command.push_back(directory);
-
- int status = run_child(command[0], command, sbuild::environment());
-
- if (status)
- exit(status);
- }
- }
-}
-
-int
-main::run_child (std::string const& file,
- sbuild::string_list const& command,
- sbuild::environment const& env)
-{
- int exit_status = 0;
- pid_t pid;
-
- if ((pid = fork()) == -1)
- {
- throw error(CHILD_FORK, strerror(errno));
- }
- else if (pid == 0)
- {
- try
- {
- sbuild::log_debug(sbuild::DEBUG_INFO)
- << "mount_main: executing "
- << sbuild::string_list_to_string(command, ", ")
- << std::endl;
- exec(file, command, env);
- error e(file, EXEC, strerror(errno));
- sbuild::log_exception_error(e);
- }
- catch (std::exception const& e)
- {
- sbuild::log_exception_error(e);
- }
- catch (...)
- {
- sbuild::log_error()
- << _("An unknown exception occurred") << std::endl;
- }
- _exit(EXIT_FAILURE);
- }
- else
- {
- wait_for_child(pid, exit_status);
- }
-
- if (exit_status)
- sbuild::log_debug(sbuild::DEBUG_INFO)
- << "mount_main: " << file
- << " failed with status " << exit_status
- << std::endl;
- else
- sbuild::log_debug(sbuild::DEBUG_INFO)
- << "mount_main: " << file
- << " succeeded"
- << std::endl;
-
- return exit_status;
-}
-
-void
-main::wait_for_child (pid_t pid,
- int& child_status)
-{
- child_status = EXIT_FAILURE; // Default exit status
-
- int status;
+ return exit_status;
+ }
- while (1)
- {
- if (waitpid(pid, &status, 0) == -1)
- {
- if (errno == EINTR)
- continue; // Wait again.
- else
- throw error(CHILD_WAIT, strerror(errno));
- }
- else
- break;
- }
-
- if (WIFEXITED(status))
- child_status = WEXITSTATUS(status);
-}
+ void
+ main::wait_for_child (pid_t pid,
+ int& child_status)
+ {
+ child_status = EXIT_FAILURE; // Default exit status
+
+ int status;
+
+ while (1)
+ {
+ if (waitpid(pid, &status, 0) == -1)
+ {
+ if (errno == EINTR)
+ continue; // Wait again.
+ else
+ throw error(CHILD_WAIT, strerror(errno));
+ }
+ else
+ break;
+ }
+
+ if (WIFEXITED(status))
+ child_status = WEXITSTATUS(status);
+ }
+
+ int
+ main::run_impl ()
+ {
+ if (this->opts->action == options::ACTION_HELP)
+ action_help(std::cerr);
+ else if (this->opts->action == options::ACTION_VERSION)
+ action_version(std::cerr);
+ else if (this->opts->action == options::ACTION_MOUNT)
+ action_mount();
+ else
+ assert(0); // Invalid action.
+
+ return EXIT_SUCCESS;
+ }
-int
-main::run_impl ()
-{
- if (this->opts->action == options::ACTION_HELP)
- action_help(std::cerr);
- else if (this->opts->action == options::ACTION_VERSION)
- action_version(std::cerr);
- else if (this->opts->action == options::ACTION_MOUNT)
- action_mount();
- else
- assert(0); // Invalid action.
-
- return EXIT_SUCCESS;
}
diff --git a/libexec/mount/mount.cc b/libexec/mount/mount.cc
index c998fd0b..0e7c112f 100644
--- a/libexec/mount/mount.cc
+++ b/libexec/mount/mount.cc
@@ -18,8 +18,8 @@
#include <config.h>
-#include <mount/options.h>
-#include <mount/main.h>
+#include <libexec/mount/options.h>
+#include <libexec/mount/main.h>
#include <bin-common/run.h>
@@ -27,8 +27,6 @@ using std::endl;
using boost::format;
namespace opt = boost::program_options;
-using namespace schroot_mount;
-
/**
* Main routine.
*
diff --git a/libexec/mount/options.cc b/libexec/mount/options.cc
index 1fc7f78a..2c3d48b9 100644
--- a/libexec/mount/options.cc
+++ b/libexec/mount/options.cc
@@ -21,7 +21,7 @@
#include <sbuild/i18n.h>
#include <sbuild/util.h>
-#include <mount/options.h>
+#include <libexec/mount/options.h>
#include <cstdlib>
#include <iostream>
@@ -33,71 +33,75 @@ using std::endl;
using boost::format;
using sbuild::_;
namespace opt = boost::program_options;
-using namespace schroot_mount;
-const options::action_type options::ACTION_MOUNT ("mount");
-
-options::options ():
- bin_common::options(),
- dry_run(false),
- fstab(),
- mountpoint(),
- mount(_("Mount"))
-{
-}
-
-options::~options ()
+namespace schroot_mount
{
-}
-
-void
-options::add_options ()
-{
- // Chain up to add basic options.
- bin_common::options::add_options();
-
- action.add(ACTION_MOUNT);
- action.set_default(ACTION_MOUNT);
-
- mount.add_options()
- ("dry-run,d",
- _("Perform a simulation of actions which would be taken"))
- ("fstab,f", opt::value<std::string>(&this->fstab),
- _("fstab file to read (full path)"))
- ("mountpoint,m", opt::value<std::string>(&this->mountpoint),
- _("Mountpoint to check (full path)"));
-}
-
-void
-options::add_option_groups ()
-{
- // Chain up to add basic option groups.
- bin_common::options::add_option_groups();
+ const options::action_type options::ACTION_MOUNT ("mount");
+
+ options::options ():
+ bin_common::options(),
+ dry_run(false),
+ fstab(),
+ mountpoint(),
+ mount(_("Mount"))
+ {
+ }
+
+ options::~options ()
+ {
+ }
+
+ void
+ options::add_options ()
+ {
+ // Chain up to add basic options.
+ bin_common::options::add_options();
+
+ action.add(ACTION_MOUNT);
+ action.set_default(ACTION_MOUNT);
+
+
+ mount.add_options()
+ ("dry-run,d",
+ _("Perform a simulation of actions which would be taken"))
+ ("fstab,f", opt::value<std::string>(&this->fstab),
+ _("fstab file to read (full path)"))
+ ("mountpoint,m", opt::value<std::string>(&this->mountpoint),
+ _("Mountpoint to check (full path)"));
+ }
+
+ void
+ options::add_option_groups ()
+ {
+ // Chain up to add basic option groups.
+ bin_common::options::add_option_groups();
#ifndef BOOST_PROGRAM_OPTIONS_DESCRIPTION_OLD
- if (!mount.options().empty())
+ if (!mount.options().empty())
#else
- if (!mount.primary_keys().empty())
+ if (!mount.primary_keys().empty())
#endif
- {
- visible.add(mount);
- global.add(mount);
- }
-}
+ {
+ visible.add(mount);
+ global.add(mount);
+ }
+ }
-void
-options::check_options ()
-{
- // Chain up to check basic options.
- bin_common::options::check_options();
+ void
+ options::check_options ()
+ {
+ // Chain up to check basic options.
+ bin_common::options::check_options();
+
+ if (vm.count("dry-run"))
+ this->dry_run = true;
- if (vm.count("dry-run"))
- this->dry_run = true;
+ this->mountpoint = sbuild::normalname(this->mountpoint);
- this->mountpoint = sbuild::normalname(this->mountpoint);
+ if (this->action == ACTION_MOUNT &&
+ this->mountpoint.empty())
+ throw error(_("No mount point specified"));
+ }
- if (this->action == ACTION_MOUNT &&
- this->mountpoint.empty())
- throw error(_("No mount point specified"));
}