#!/usr/bin/perl # # Run a shell in a chroot. # Copyright © 2006 Roger Leigh # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see # . # ####################################################################### use strict; use warnings; use Getopt::Long; use Sbuild qw(help_text version_text usage_error check_group_membership); use Sbuild::Utility qw(setup cleanup); use Sbuild::ChrootSetup qw(shell); use Sbuild::Sysconfig; use Sbuild::Conf qw(); use Sbuild::OptionsBase; my $conf = Sbuild::Conf::new(); exit 1 if !defined($conf); my $options = Sbuild::OptionsBase->new($conf, "sbuild-shell", "1"); exit 1 if !defined($options); check_group_membership(); usage_error("sbuild-shell", "Incorrect number of options") if (@ARGV != 1); my $session = setup('source', $ARGV[0], $conf) or die "Chroot setup failed"; my $status = shell($session, $conf); $status >>= 8; cleanup($conf); exit $status;