#include <sbuild-chroot-file.h>
Public Member Functions | |
virtual | ~chroot_file () |
The destructor. | |
virtual chroot::ptr | clone () const |
Copy the chroot. | |
virtual chroot::ptr | clone_source () const |
Create a source chroot. | |
std::string const & | get_file () const |
Get the file used by the chroot. | |
void | set_file (std::string const &file) |
Set the file used by the chroot. | |
bool | get_file_repack () const |
Get the repack status. | |
void | set_file_repack (bool repack) |
Set the file repack status. | |
virtual std::string const & | get_chroot_type () const |
Get the type of the chroot. | |
virtual void | setup_env (environment &env) |
Set environment. | |
virtual session_flags | get_session_flags () const |
Get the session flags of the chroot. | |
Protected Member Functions | |
chroot_file () | |
The constructor. | |
virtual void | setup_lock (chroot::setup_type type, bool lock, int status) |
Unlock a chroot during setup. | |
virtual void | get_details (format_detail &detail) const |
Get detailed information about the chroot for output. | |
virtual void | get_keyfile (keyfile &keyfile) const |
Copy the chroot properties into a keyfile. | |
virtual void | set_keyfile (keyfile const &keyfile, string_list &used_keys) |
Set the chroot properties from a keyfile. | |
Private Attributes | |
std::string | file |
The file to use. | |
bool | repack |
Should the chroot be repacked? | |
Friends | |
class | chroot |
The archive will be unpacked on demand.
chroot_file::chroot_file | ( | ) | [protected] |
The constructor.
References sbuild::chroot::set_run_exec_scripts(), and sbuild::chroot::set_run_setup_scripts().
Referenced by clone(), and clone_source().
chroot_file::~chroot_file | ( | ) | [virtual] |
The destructor.
sbuild::chroot::ptr chroot_file::clone | ( | ) | const [virtual] |
Copy the chroot.
This is a virtual copy constructor.
Implements sbuild::chroot.
References chroot_file().
Referenced by clone_source().
sbuild::chroot::ptr chroot_file::clone_source | ( | ) | const [virtual] |
Create a source chroot.
Implements sbuild::chroot_source.
References chroot_file(), clone(), sbuild::chroot_source::clone_source_setup(), and repack.
std::string const & chroot_file::get_chroot_type | ( | ) | const [virtual] |
void chroot_file::get_details | ( | format_detail & | detail | ) | const [protected, virtual] |
Get detailed information about the chroot for output.
detail | the details to output to. |
Reimplemented from sbuild::chroot_source.
References file, get_file(), and repack.
std::string const & chroot_file::get_file | ( | ) | const |
Get the file used by the chroot.
References file.
Referenced by get_details(), get_keyfile(), and setup_env().
bool chroot_file::get_file_repack | ( | ) | const |
Get the repack status.
This is true if the unpacked archive file will be repacked.
References repack.
Referenced by get_keyfile().
void chroot_file::get_keyfile | ( | keyfile & | keyfile | ) | const [protected, virtual] |
Copy the chroot properties into a keyfile.
The keyfile group with the name of the chroot will be set; if it already exists, it will be removed before setting it.
keyfile | the keyfile to use. |
Reimplemented from sbuild::chroot_source.
References sbuild::chroot::get_active(), get_file(), get_file_repack(), sbuild::chroot::get_name(), and sbuild::basic_keyfile< K, P >::set_object_value().
sbuild::chroot::session_flags chroot_file::get_session_flags | ( | ) | const [virtual] |
Get the session flags of the chroot.
These determine how the Session controlling the chroot will operate.
Reimplemented from sbuild::chroot_source.
References sbuild::chroot::SESSION_CREATE.
void chroot_file::set_file | ( | std::string const & | file | ) |
Set the file used by the chroot.
file | the file. |
References sbuild::chroot::FILE_ABS, and sbuild::is_absname().
Referenced by set_keyfile().
void chroot_file::set_file_repack | ( | bool | repack | ) |
Set the file repack status.
Set to true if the unpacked archive file will be repacked on session cleanup, or false to discard.
repack | the repack status. |
Referenced by set_keyfile().
void chroot_file::set_keyfile | ( | keyfile const & | keyfile, | |
string_list & | used_keys | |||
) | [protected, virtual] |
Set the chroot properties from a keyfile.
The chroot name must have previously been set, so that the correct keyfile group may be determined.
keyfile | the keyfile to get the properties from. | |
used_keys | a list of the keys used will be set. |
Reimplemented from sbuild::chroot_source.
References sbuild::chroot::get_active(), sbuild::chroot::get_name(), sbuild::basic_keyfile< K, P >::get_object_value(), sbuild::keyfile_base::PRIORITY_DISALLOWED, sbuild::keyfile_base::PRIORITY_REQUIRED, set_file(), and set_file_repack().
void chroot_file::setup_env | ( | environment & | env | ) | [virtual] |
Set environment.
Set the environment that the setup scripts will see during execution.
env | the environment to set. |
Reimplemented from sbuild::chroot_source.
References sbuild::environment::add(), get_file(), and repack.
void chroot_file::setup_lock | ( | chroot::setup_type | type, | |
bool | lock, | |||
int | status | |||
) | [protected, virtual] |
Unlock a chroot during setup.
The locking technique (if any) may vary depending upon the chroot type and setup stage. For example, during creation of an LVM snapshot a block device might require locking, but afterwards this will change to the new block device.
An error will be thrown on failure.
type | the type of setup being performed | |
lock | true to lock, false to unlock | |
status | the exit status of the setup commands (0 for success, nonzero for failure). |
Implements sbuild::chroot.
References sbuild::stat::check_mode(), file, sbuild::chroot::FILE_NOTREG, sbuild::chroot::FILE_OWNER, sbuild::chroot::FILE_PERMS, sbuild::stat::is_regular(), sbuild::stat::PERM_OTHER_WRITE, sbuild::chroot::setup_session_info(), sbuild::chroot::SETUP_START, sbuild::chroot::SETUP_STOP, and sbuild::stat::uid().
friend class chroot [friend] |
Reimplemented from sbuild::chroot_source.
std::string sbuild::chroot_file::file [private] |
bool sbuild::chroot_file::repack [private] |
Should the chroot be repacked?
Referenced by clone_source(), get_details(), get_file_repack(), and setup_env().