36
30
<a name="l00011"></a>00011 <span class="comment"> * General Public License for more details.</span>
37
31
<a name="l00012"></a>00012 <span class="comment"> *</span>
38
32
<a name="l00013"></a>00013 <span class="comment"> * You should have received a copy of the GNU General Public License</span>
39
<a name="l00014"></a>00014 <span class="comment"> * along with this program; if not, write to the Free Software</span>
40
<a name="l00015"></a>00015 <span class="comment"> * Foundation, Inc., 59 Temple Place, Suite 330, Boston,</span>
41
<a name="l00016"></a>00016 <span class="comment"> * MA 02111-1307 USA</span>
42
<a name="l00017"></a>00017 <span class="comment"> *</span>
43
<a name="l00018"></a>00018 <span class="comment"> *********************************************************************/</span>
44
<a name="l00019"></a>00019
45
<a name="l00020"></a>00020 <span class="preprocessor">#include <config.h></span>
46
<a name="l00021"></a>00021
47
<a name="l00022"></a>00022 <span class="preprocessor">#include "<a class="code" href="dchroot-dsa-main_8h.html">dchroot-dsa-main.h</a>"</span>
48
<a name="l00023"></a>00023 <span class="preprocessor">#include "<a class="code" href="dchroot-dsa-chroot-config_8h.html">dchroot-dsa-chroot-config.h</a>"</span>
49
<a name="l00024"></a>00024 <span class="preprocessor">#include "<a class="code" href="dchroot-dsa-session_8h.html">dchroot-dsa-session.h</a>"</span>
50
<a name="l00025"></a>00025
51
<a name="l00026"></a>00026 <span class="preprocessor">#include <cstdlib></span>
52
<a name="l00027"></a>00027 <span class="preprocessor">#include <iostream></span>
53
<a name="l00028"></a>00028 <span class="preprocessor">#include <locale></span>
54
<a name="l00029"></a>00029
55
<a name="l00030"></a>00030 <span class="preprocessor">#include <sys/types.h></span>
56
<a name="l00031"></a>00031 <span class="preprocessor">#include <sys/stat.h></span>
57
<a name="l00032"></a>00032 <span class="preprocessor">#include <termios.h></span>
58
<a name="l00033"></a>00033 <span class="preprocessor">#include <unistd.h></span>
59
<a name="l00034"></a>00034
60
<a name="l00035"></a>00035 <span class="preprocessor">#include <boost/format.hpp></span>
61
<a name="l00036"></a>00036
62
<a name="l00037"></a>00037 <span class="keyword">using</span> std::endl;
63
<a name="l00038"></a>00038 <span class="keyword">using</span> sbuild::_;
64
<a name="l00039"></a>00039 <span class="keyword">using</span> boost::format;
65
<a name="l00040"></a>00040 <span class="keyword">using namespace </span>dchroot_dsa;
66
<a name="l00041"></a>00041
67
<a name="l00042"></a><a class="code" href="classdchroot__dsa_1_1main.html#9f26e38af1f8b58757e6cf9be2d6b2c0">00042</a> <a class="code" href="schroot_8cc.html#0ddf1224851353fc92bfbff6f499fa97" title="Main routine.">main::main</a> (<a class="code" href="classschroot_1_1options__base.html#f263f91b2073c330e89a81bf77615b05" title="A shared_ptr to an options_base object.">schroot::options_base::ptr</a>& <a class="code" href="classdchroot__dsa_1_1options.html" title="dchroot-dsa command-line options.">options</a>):
68
<a name="l00043"></a>00043 main_base(<span class="stringliteral">"dchroot-dsa"</span>,
69
<a name="l00044"></a>00044 <span class="comment">// TRANSLATORS: '...' is an ellipsis e.g. U+2026, and '-'</span>
70
<a name="l00045"></a>00045 <span class="comment">// is an em-dash.</span>
71
<a name="l00046"></a>00046 _(<span class="stringliteral">"[OPTION...] chroot [COMMAND] - run command or shell in a chroot"</span>),
72
<a name="l00047"></a>00047 options)
73
<a name="l00048"></a>00048 {
74
<a name="l00049"></a>00049 }
75
<a name="l00050"></a>00050
76
<a name="l00051"></a><a class="code" href="classdchroot__dsa_1_1main.html#4444e261c1a635e1aab12e00e5b95f5a">00051</a> <a class="code" href="classdchroot__dsa_1_1main.html#4444e261c1a635e1aab12e00e5b95f5a" title="The destructor.">main::~main</a> ()
77
<a name="l00052"></a>00052 {
78
<a name="l00053"></a>00053 }
79
<a name="l00054"></a>00054
80
<a name="l00055"></a>00055 <span class="keywordtype">void</span>
81
<a name="l00056"></a><a class="code" href="classdchroot__dsa_1_1main.html#0d03c7db938e0c914e7782f1c91d3471">00056</a> <a class="code" href="classdchroot__dsa_1_1main.html#0d03c7db938e0c914e7782f1c91d3471" title="Load configuration.">main::load_config</a> ()
82
<a name="l00057"></a>00057 {
83
<a name="l00058"></a>00058 <a class="code" href="classdchroot_1_1main__base.html#c3f944ff1ac95a770caa6488a75e7bff" title="Check dchroot.conf exists.">check_dchroot_conf</a>();
84
<a name="l00059"></a>00059
85
<a name="l00060"></a>00060 <span class="keywordflow">if</span> (this->use_dchroot_conf)
86
<a name="l00061"></a>00061 {
87
<a name="l00062"></a>00062 this-><a class="code" href="classschroot_1_1main__base.html#640ac7896d7ae52ce0949180c63a0c5b" title="The chroot configuration.">config</a> =
88
<a name="l00063"></a>00063 <a class="codeRef" doxygen="sbuild.tag:/tmp/sr/schroot-1.1.5/doc/sbuild/html/" href="/tmp/sr/schroot-1.1.5/doc/sbuild/html/classsbuild_1_1chroot__config.html#6138ce730de1d69e0f97d4100228b697">sbuild::chroot_config::ptr</a>(<span class="keyword">new</span> <a class="code" href="classdchroot__dsa_1_1chroot__config.html" title="Chroot configuration for dchroot-dsa compatibility.">dchroot_dsa::chroot_config</a>);
89
<a name="l00064"></a>00064 <span class="keywordflow">if</span> (this->options->load_chroots == <span class="keyword">true</span>)
90
<a name="l00065"></a>00065 this-><a class="code" href="classschroot_1_1main__base.html#640ac7896d7ae52ce0949180c63a0c5b" title="The chroot configuration.">config</a>->add(DCHROOT_CONF, <span class="keyword">false</span>);
91
<a name="l00066"></a>00066 }
92
<a name="l00067"></a>00067 <span class="keywordflow">else</span>
93
<a name="l00068"></a>00068 {
94
<a name="l00069"></a>00069 <a class="code" href="classschroot_1_1main__base.html#0c5dc435d73143412d25a665a724dfb9" title="Load configuration.">schroot::main_base::load_config</a>();
95
<a name="l00070"></a>00070 }
96
<a name="l00071"></a>00071 }
97
<a name="l00072"></a>00072
98
<a name="l00073"></a>00073 <span class="keywordtype">void</span>
99
<a name="l00074"></a><a class="code" href="classdchroot__dsa_1_1main.html#61789444a1ff1488841740843e8443d0">00074</a> <a class="code" href="classdchroot__dsa_1_1main.html#61789444a1ff1488841740843e8443d0" title="Create a session.">main::create_session</a>(<a class="codeRef" doxygen="sbuild.tag:/tmp/sr/schroot-1.1.5/doc/sbuild/html/" href="/tmp/sr/schroot-1.1.5/doc/sbuild/html/classsbuild_1_1session.html#3bedc4f49c2fe2c7f59c8d7ec5c1f5b7">sbuild::session::operation</a> sess_op)
100
<a name="l00075"></a>00075 {
101
<a name="l00076"></a>00076 <a class="codeRef" doxygen="sbuild.tag:/tmp/sr/schroot-1.1.5/doc/sbuild/html/" href="/tmp/sr/schroot-1.1.5/doc/sbuild/html/namespacesbuild.html#fb49f5f1584c85f1415926f9cb240eaf">sbuild::log_debug</a>(<a class="codeRef" doxygen="sbuild.tag:/tmp/sr/schroot-1.1.5/doc/sbuild/html/" href="/tmp/sr/schroot-1.1.5/doc/sbuild/html/namespacesbuild.html#cc4d8fc120bfd21c22acd9d9ed0e754d083bdfab8e8759520a072fe2ab01508e">sbuild::DEBUG_INFO</a>)
102
<a name="l00077"></a>00077 << <span class="stringliteral">"Creating dchroot-dsa session"</span> << endl;
103
<a name="l00078"></a>00078
104
<a name="l00079"></a>00079 <span class="comment">// Using dchroot.conf implies using dchroot_session_base, which does</span>
105
<a name="l00080"></a>00080 <span class="comment">// not require user or group access.</span>
106
<a name="l00081"></a>00081 this-><a class="code" href="classdchroot__dsa_1_1session.html" title="Session handler for dchroot-dsa sessions.">session</a> = <a class="codeRef" doxygen="sbuild.tag:/tmp/sr/schroot-1.1.5/doc/sbuild/html/" href="/tmp/sr/schroot-1.1.5/doc/sbuild/html/classsbuild_1_1session.html#a00bf399848f0ba6c998c9320eaaa698">sbuild::session::ptr</a>
107
<a name="l00082"></a>00082 (<span class="keyword">new</span> <a class="code" href="classdchroot__dsa_1_1session.html" title="Session handler for dchroot-dsa sessions.">dchroot_dsa::session</a>(<span class="stringliteral">"schroot"</span>,
108
<a name="l00083"></a>00083 this->config,
109
<a name="l00084"></a>00084 sess_op,
110
<a name="l00085"></a>00085 this->chroots,
111
<a name="l00086"></a>00086 this->use_dchroot_conf));
112
<a name="l00087"></a>00087 }
113
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Sun Jul 8 21:23:54 2007 for schroot by
33
<a name="l00014"></a>00014 <span class="comment"> * along with this program. If not, see</span>
34
<a name="l00015"></a>00015 <span class="comment"> * <http://www.gnu.org/licenses/>.</span>
35
<a name="l00016"></a>00016 <span class="comment"> *</span>
36
<a name="l00017"></a>00017 <span class="comment"> *********************************************************************/</span>
37
<a name="l00018"></a>00018
38
<a name="l00019"></a>00019 <span class="preprocessor">#include <config.h></span>
39
<a name="l00020"></a>00020
40
<a name="l00021"></a>00021 <span class="preprocessor">#include "<a class="code" href="dchroot-dsa-main_8h.html">dchroot-dsa-main.h</a>"</span>
41
<a name="l00022"></a>00022 <span class="preprocessor">#include "<a class="code" href="dchroot-dsa-chroot-config_8h.html">dchroot-dsa-chroot-config.h</a>"</span>
42
<a name="l00023"></a>00023 <span class="preprocessor">#include "<a class="code" href="dchroot-dsa-session_8h.html">dchroot-dsa-session.h</a>"</span>
43
<a name="l00024"></a>00024
44
<a name="l00025"></a>00025 <span class="preprocessor">#include <cstdlib></span>
45
<a name="l00026"></a>00026 <span class="preprocessor">#include <iostream></span>
46
<a name="l00027"></a>00027 <span class="preprocessor">#include <locale></span>
47
<a name="l00028"></a>00028
48
<a name="l00029"></a>00029 <span class="preprocessor">#include <sys/types.h></span>
49
<a name="l00030"></a>00030 <span class="preprocessor">#include <sys/stat.h></span>
50
<a name="l00031"></a>00031 <span class="preprocessor">#include <termios.h></span>
51
<a name="l00032"></a>00032 <span class="preprocessor">#include <unistd.h></span>
52
<a name="l00033"></a>00033
53
<a name="l00034"></a>00034 <span class="preprocessor">#include <boost/format.hpp></span>
54
<a name="l00035"></a>00035
55
<a name="l00036"></a>00036 <span class="keyword">using</span> std::endl;
56
<a name="l00037"></a>00037 <span class="keyword">using</span> sbuild::_;
57
<a name="l00038"></a>00038 <span class="keyword">using</span> boost::format;
58
<a name="l00039"></a>00039 <span class="keyword">using namespace </span>dchroot_dsa;
59
<a name="l00040"></a>00040
60
<a name="l00041"></a><a class="code" href="classdchroot__dsa_1_1main.html#9f26e38af1f8b58757e6cf9be2d6b2c0">00041</a> <a class="code" href="schroot_8cc.html#0ddf1224851353fc92bfbff6f499fa97" title="Main routine.">main::main</a> (<a class="code" href="classschroot_1_1options__base.html#f263f91b2073c330e89a81bf77615b05" title="A shared_ptr to an options_base object.">schroot::options_base::ptr</a>& <a class="code" href="classdchroot__dsa_1_1options.html" title="dchroot-dsa command-line options.">options</a>):
61
<a name="l00042"></a>00042 main_base(<span class="stringliteral">"dchroot-dsa"</span>,
62
<a name="l00043"></a>00043 <span class="comment">// TRANSLATORS: '...' is an ellipsis e.g. U+2026, and '-'</span>
63
<a name="l00044"></a>00044 <span class="comment">// is an em-dash.</span>
64
<a name="l00045"></a>00045 _(<span class="stringliteral">"[OPTION...] chroot [COMMAND] - run command or shell in a chroot"</span>),
65
<a name="l00046"></a>00046 options)
66
<a name="l00047"></a>00047 {
67
<a name="l00048"></a>00048 }
68
<a name="l00049"></a>00049
69
<a name="l00050"></a><a class="code" href="classdchroot__dsa_1_1main.html#4444e261c1a635e1aab12e00e5b95f5a">00050</a> <a class="code" href="classdchroot__dsa_1_1main.html#4444e261c1a635e1aab12e00e5b95f5a" title="The destructor.">main::~main</a> ()
70
<a name="l00051"></a>00051 {
71
<a name="l00052"></a>00052 }
72
<a name="l00053"></a>00053
73
<a name="l00054"></a>00054 <span class="keywordtype">void</span>
74
<a name="l00055"></a><a class="code" href="classdchroot__dsa_1_1main.html#0d03c7db938e0c914e7782f1c91d3471">00055</a> <a class="code" href="classdchroot__dsa_1_1main.html#0d03c7db938e0c914e7782f1c91d3471" title="Load configuration.">main::load_config</a> ()
75
<a name="l00056"></a>00056 {
76
<a name="l00057"></a>00057 <a class="code" href="classdchroot_1_1main__base.html#c3f944ff1ac95a770caa6488a75e7bff" title="Check dchroot.conf exists.">check_dchroot_conf</a>();
77
<a name="l00058"></a>00058
78
<a name="l00059"></a>00059 <span class="keywordflow">if</span> (this->use_dchroot_conf)
79
<a name="l00060"></a>00060 {
80
<a name="l00061"></a>00061 this-><a class="code" href="classschroot_1_1main__base.html#640ac7896d7ae52ce0949180c63a0c5b" title="The chroot configuration.">config</a> =
81
<a name="l00062"></a>00062 <a class="codeRef" doxygen="sbuild.tag:/tmp/sb/schroot/doc/sbuild/html/" href="/tmp/sb/schroot/doc/sbuild/html/classsbuild_1_1chroot__config.html#6138ce730de1d69e0f97d4100228b697">sbuild::chroot_config::ptr</a>(<span class="keyword">new</span> <a class="code" href="classdchroot__dsa_1_1chroot__config.html" title="Chroot configuration for dchroot-dsa compatibility.">dchroot_dsa::chroot_config</a>);
82
<a name="l00063"></a>00063 <span class="keywordflow">if</span> (this->options->load_chroots == <span class="keyword">true</span>)
83
<a name="l00064"></a>00064 this-><a class="code" href="classschroot_1_1main__base.html#640ac7896d7ae52ce0949180c63a0c5b" title="The chroot configuration.">config</a>->add(DCHROOT_CONF, <span class="keyword">false</span>);
84
<a name="l00065"></a>00065 }
85
<a name="l00066"></a>00066 <span class="keywordflow">else</span>
86
<a name="l00067"></a>00067 {
87
<a name="l00068"></a>00068 <a class="code" href="classschroot_1_1main__base.html#0c5dc435d73143412d25a665a724dfb9" title="Load configuration.">schroot::main_base::load_config</a>();
88
<a name="l00069"></a>00069 }
89
<a name="l00070"></a>00070 }
90
<a name="l00071"></a>00071
91
<a name="l00072"></a>00072 <span class="keywordtype">void</span>
92
<a name="l00073"></a><a class="code" href="classdchroot__dsa_1_1main.html#61789444a1ff1488841740843e8443d0">00073</a> <a class="code" href="classdchroot__dsa_1_1main.html#61789444a1ff1488841740843e8443d0" title="Create a session.">main::create_session</a>(<a class="codeRef" doxygen="sbuild.tag:/tmp/sb/schroot/doc/sbuild/html/" href="/tmp/sb/schroot/doc/sbuild/html/classsbuild_1_1session.html#3bedc4f49c2fe2c7f59c8d7ec5c1f5b7">sbuild::session::operation</a> sess_op)
93
<a name="l00074"></a>00074 {
94
<a name="l00075"></a>00075 <a class="codeRef" doxygen="sbuild.tag:/tmp/sb/schroot/doc/sbuild/html/" href="/tmp/sb/schroot/doc/sbuild/html/namespacesbuild.html#fb49f5f1584c85f1415926f9cb240eaf">sbuild::log_debug</a>(<a class="codeRef" doxygen="sbuild.tag:/tmp/sb/schroot/doc/sbuild/html/" href="/tmp/sb/schroot/doc/sbuild/html/namespacesbuild.html#cc4d8fc120bfd21c22acd9d9ed0e754d083bdfab8e8759520a072fe2ab01508e">sbuild::DEBUG_INFO</a>)
95
<a name="l00076"></a>00076 << <span class="stringliteral">"Creating dchroot-dsa session"</span> << endl;
96
<a name="l00077"></a>00077
97
<a name="l00078"></a>00078 <span class="comment">// Using dchroot.conf implies using dchroot_session_base, which does</span>
98
<a name="l00079"></a>00079 <span class="comment">// not require user or group access.</span>
99
<a name="l00080"></a>00080 this-><a class="code" href="classdchroot__dsa_1_1session.html" title="Session handler for dchroot-dsa sessions.">session</a> = <a class="codeRef" doxygen="sbuild.tag:/tmp/sb/schroot/doc/sbuild/html/" href="/tmp/sb/schroot/doc/sbuild/html/classsbuild_1_1session.html#a00bf399848f0ba6c998c9320eaaa698">sbuild::session::ptr</a>
100
<a name="l00081"></a>00081 (<span class="keyword">new</span> <a class="code" href="classdchroot__dsa_1_1session.html" title="Session handler for dchroot-dsa sessions.">dchroot_dsa::session</a>(<span class="stringliteral">"schroot"</span>,
101
<a name="l00082"></a>00082 this->config,
102
<a name="l00083"></a>00083 sess_op,
103
<a name="l00084"></a>00084 this->chroots,
104
<a name="l00085"></a>00085 this->use_dchroot_conf));
105
<a name="l00086"></a>00086 }
106
</pre></div><hr size="1"><address style="text-align: right;"><small>Generated on Mon Jan 21 00:38:28 2008 for schroot by
114
107
<a href="http://www.doxygen.org/index.html">
115
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.2 </small></address>
108
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.4 </small></address>