#! /usr/bin/perl -T
-# $Id$
+# $Id: mockrun,v 1.2 2009/10/03 17:45:41 jkratoch Exp $
use strict;
use warnings;
use English;
die "Need [/var/lib/mock/]<ROOTNAME> [<commandline...>]" if @ARGV<1;
local $_=shift;
-$EUID==0 or die "Need SUID";
-$UID = $EUID;
delete @ENV{qw(PATH BASH_ENV)};
tr{/}{}s;
s{^/var/lib/mock/}{};
-my $safe="([-_a-z0-9]+)";
+my $safe="([-_a-z0-9/]+)";
$_=(/$safe/)[0];
+my $HOME=($ENV{"HOME"}=~/$safe/)[0];
my $rpath="/var/lib/mock/$_/root";
-system "/usr/local/sbin/mocksetup -s $_" and die "mocksetup $_";
+system "sudo $HOME/bin/mocksetup -s $_" and die "sudo mocksetup $_";
-e "$rpath/MOCK" or die "mocksetup $_ and still no $rpath/MOCK";
my $user=$ENV{"USER"};
$user=($user=~/$safe/)[0];
# my $mock="/usr/bin/mock";
# my @l=(qw(mock -r),$_,qw(--shell));
my $mock="/usr/bin/setarch";
-my $arch=(/-([^-]+)$/)[0];
-my @l=("setarch",$arch,"/usr/sbin/chroot",$rpath);
+my $arch=(/-(i386|x86_64)(?:-.*)?$/)[0] or die;
+my @l=("setarch",$arch,"/usr/bin/sudo","/usr/sbin/chroot",$rpath);
# Untaint @ARGV->@args.
my $args="";