stgraber@dakara:~$ python3 test trusty
Reading package lists... Done
Building dependency tree
Reading state information... Done
NOTICE: 'nvidia-graphics-drivers-340' packaging is maintained in the 'Git' version control system at:
git://github.com/tseliot/nvidia-graphics-drivers.git
Need to get 101 MB of source archives.
Get:1 http://us.archive.ubuntu.com/ubuntu/ trusty-updates/restricted nvidia-graphics-drivers-340 340.98-0ubuntu0.14.04.1 (dsc) [3,718 B]
Get:2 http://us.archive.ubuntu.com/ubuntu/ trusty-updates/restricted nvidia-graphics-drivers-340 340.98-0ubuntu0.14.04.1 (tar) [100 MB]
Get:3 http://us.archive.ubuntu.com/ubuntu/ trusty-updates/restricted nvidia-graphics-drivers-340 340.98-0ubuntu0.14.04.1 (diff) [153 kB]
Fetched 101 MB in 2s (47.1 MB/s)
gpgv: Signature made Tue 25 Oct 2016 06:24:32 PM UTC using RSA key ID A744BE93
gpgv: Can't check signature: public key not found
dpkg-source: warning: failed to verify signature on ./nvidia-graphics-drivers-340_340.98-0ubuntu0.14.04.1.dsc
dpkg-source: info: extracting nvidia-graphics-drivers-340 in nvidia-graphics-drivers-340-340.98
dpkg-source: info: unpacking nvidia-graphics-drivers-340_340.98.orig.tar.gz
dpkg-source: info: applying nvidia-graphics-drivers-340_340.98-0ubuntu0.14.04.1.diff.gz
yay
stgraber@dakara:~$ lxc exec trusty cat test.sh
#!/bin/sh -x
apt-get source --only-source nvidia-graphics-drivers-340=340.98-0ubuntu0.14.04.1
rm -Rf nvidia*
echo yay
stgraber@dakara:~$ cat test
import subprocess
import sys
container_name = sys.argv[1]
auxverb = [
'lxc', 'exec', container_name, '--',
'env', '-i', 'bash', '-c',
'set -a; '
'[ -r /etc/environment ] && . /etc/environment 2>/dev/null || true; '
'[ -r /etc/default/locale ] && . /etc/default/locale 2>/dev/null || true; '
'[ -r /etc/profile ] && . /etc/profile 2>/dev/null || true; '
'set +a;'
'"$@"; RC=$?; [ $RC != 255 ] || RC=253; '
'set -e;'
'myout=$(readlink /proc/$$/fd/1);'
'myerr=$(readlink /proc/$$/fd/2);'
'myout="${myout/[/\\\\[}"; myout="${myout/]/\\\\]}";'
'myerr="${myerr/[/\\\\[}"; myerr="${myerr/]/\\\\]}";'
'PS=$(ls -l /proc/[0-9]*/fd/* 2>/dev/null | sed -nr \'\#(\'"$myout"\'|\'"$myerr"\')# { s#^.*/proc/([0-9]+)/.*$#\\1#; p}\'|sort -u);'
'KILL="";'
'for pid in $PS; do'
' [ $pid -ne $$ ] && [ $pid -ne $PPID ] || continue;'
' KILL="$KILL $pid";'
'done;'
'[ -z "$KILL" ] || kill -9 $KILL >/dev/null 2>&1 || true;'
'exit $RC', '--'
]
subprocess.call(auxverb+["sh", "test.sh"])