19 #ifndef SBUILD_CHROOT_CONFIG_H
20 #define SBUILD_CHROOT_CONFIG_H
22 #include <sbuild/chroot/chroot.h>
23 #include <sbuild/custom-error.h>
52 typedef std::map<std::string, chroot::chroot::ptr>
chroot_map;
78 typedef std::shared_ptr<config>
ptr;
91 config (
const std::string& chroot_namespace,
92 const std::string& file);
107 add (
const std::string& chroot_namespace,
108 const std::string& location);
121 const std::string& file);
133 const std::string& dir);
148 add (
const std::string& chroot_namespace,
161 get_chroots (
const std::string& chroot_namespace)
const;
194 std::string& chroot_namespace,
195 std::string& chroot_name);
217 const std::string& name)
const;
228 const std::string& name)
const;
239 find_alias (
const std::string& namespace_hint,
240 const std::string& name)
const;
252 const std::string& name)
const;
312 load_data (
const std::string& chroot_namespace,
313 const std::string& file);
325 parse_data (
const std::string& chroot_namespace,
326 std::istream& stream);
File is not a regular file.
Definition: config.h:66
std::map< std::string, std::string > string_map
A map between key-value string pairs.
Definition: config.h:50
void add_config_file(const std::string &chroot_namespace, const std::string &file)
Add a configuration file.
Definition: config.cc:125
Debian source builder components.
Definition: ctty.cc:31
static void get_namespace(const std::string &name, std::string &chroot_namespace, std::string &chroot_name)
Split a chroot name into a namespace and name.
Definition: config.cc:655
chroot_map & find_namespace(const std::string &chroot_namespace)
Find a chroot namespace.
Definition: config.cc:307
custom_error< error_code > error
Exception type.
Definition: config.h:75
void print_chroot_list_simple(std::ostream &stream) const
Print a single line of all the available chroots to the specified stream.
Definition: config.cc:467
virtual void load_keyfile(const std::string &chroot_namespace, keyfile &kconfig)
Load a keyfile.
Definition: config.cc:588
void add_config_directory(const std::string &chroot_namespace, const std::string &dir)
Add a configuration directory.
Definition: config.cc:138
static const std::string namespace_separator
Namespace separating character.
Definition: config.h:57
chroot_namespace_map namespaces
A list of chroots (name->chroot mapping).
Definition: config.h:341
Alias already associated with chroot.
Definition: config.h:62
File is not owned by user root.
Definition: config.h:68
virtual void parse_data(const std::string &chroot_namespace, std::istream &stream)
Parse a loaded configuration file.
Definition: config.cc:577
string_map aliases
A list of aliases (alias->name mapping).
Definition: config.h:343
chroot_map validate_chroots(const std::string &namespace_hint, const string_list &chroots) const
Check that all the chroots specified exist.
Definition: config.cc:501
std::shared_ptr< config > ptr
A shared_ptr to a config object.
Definition: config.h:78
Common chroot data.
Definition: chroot.h:50
std::map< std::string, chroot::chroot::ptr > chroot_map
A map between a chroot name and a chroot object.
Definition: config.h:52
virtual ~config()
The destructor.
Definition: config.cc:107
Chroots not found.
Definition: config.h:64
string_list get_alias_list(const std::string &chroot_namespace) const
Get the names (including aliases) of all the available chroots, sorted in alphabetical order...
Definition: config.cc:443
chroot_list get_chroots(const std::string &chroot_namespace) const
Get a list of available chroots.
Definition: config.cc:293
error_code
Error codes.
Definition: config.h:60
Chroot not found.
Definition: config.h:63
const chroot::chroot::ptr find_chroot_in_namespace(const std::string &chroot_namespace, const std::string &name) const
Find a chroot by its name in a specific namespace.
Definition: config.cc:357
std::vector< chroot::chroot::ptr > chroot_list
A list of chroots.
Definition: config.h:48
std::vector< std::string > string_list
A string vector.
Definition: types.h:38
Failed to open file.
Definition: config.h:67
Custom error.
Definition: custom-error.h:31
const chroot::chroot::ptr find_chroot(const std::string &name) const
Find a chroot by its name.
Definition: config.cc:329
std::shared_ptr< chroot > ptr
A shared_ptr to a chroot object.
Definition: chroot.h:103
File has write permissions for others.
Definition: config.h:69
Configuration file parser.
Definition: keyfile.h:46
const chroot::chroot::ptr find_alias(const std::string &namespace_hint, const std::string &name) const
Find a chroot by its name or an alias.
Definition: config.cc:376
std::map< std::string, chroot_map > chroot_namespace_map
A map between a chroot namespace and a chroot map object.
Definition: config.h:54
Chroot configuration.
Definition: config.h:44
Invalid name.
Definition: config.h:70
std::string lookup_alias(const std::string &namespace_hint, const std::string &name) const
Find the chroot name referred to by an alias.
Definition: config.cc:401
No such namespace.
Definition: config.h:71
string_list get_chroot_list(const std::string &chroot_namespace) const
Get the names (including aliases) of all the available chroots, sorted in alphabetical order...
Definition: config.cc:429
void add(const std::string &chroot_namespace, const std::string &location)
Add a configuration file or directory.
Definition: config.cc:112
config()
The constructor.
Definition: config.cc:86
void load_data(const std::string &chroot_namespace, const std::string &file)
Load a configuration file.
Definition: config.cc:525
A chroot or alias already exists with this name.
Definition: config.h:65