summaryrefslogtreecommitdiffstats
path: root/scripts/poky-chroot-run
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/poky-chroot-run')
-rwxr-xr-xscripts/poky-chroot-run86
1 files changed, 0 insertions, 86 deletions
diff --git a/scripts/poky-chroot-run b/scripts/poky-chroot-run
deleted file mode 100755
index f1f4dec6a4..0000000000
--- a/scripts/poky-chroot-run
+++ /dev/null
@@ -1,86 +0,0 @@
1#!/bin/bash
2#
3# Runs a command within a Poky chroot
4#
5
6XEPHYR=`which Xephyr`
7if [ ! -n "$XEPHYR" -o ! -x "$XEPHYR" ]; then
8 echo "You need to install Xephyr to use $0"
9 exit 1
10fi
11
12CHROOTUID=`which chrootuid`
13if [ ! -n "$CHROOTUID" -o ! -x "$CHROOTUID" ]; then
14 echo "You need to install Xephyr to use $0"
15 exit 1
16fi
17
18
19case $# in
20 0)
21 echo "Invalid arguments."
22 echo "$ $0 <target> [command]"
23 exit 1
24 ;;
25 1)
26 ROOTFS=$1
27 shift
28 # Set $1 to be the boot script
29 set -- /usr/bin/poky-chroot-launch
30 ;;
31 *)
32 ROOTFS=$1
33 shift
34 # Now $1 onwards are the command and arguments to run
35 ;;
36esac
37
38test -f "$ROOTFS/.pokychroot" || { echo "$ROOTFS is not setup for use as a Poky chroot." ; exit 1 ;}
39
40set -e
41
42# chrootuid doesn't handle relative paths, so ensure that the rootfs path is
43# absolute
44if test ${ROOTFS:0:1} != /; then
45 ROOTFS="$(pwd)/$ROOTFS"
46fi
47
48safe_mount() {
49 if ! mountpoint -q "$ROOTFS/$1"; then
50 sudo mount --bind $1 "$ROOTFS/$1"
51 fi
52}
53safe_umount() {
54 if mountpoint -q "$ROOTFS/$1"; then
55 sudo umount "$ROOTFS/$1"
56 fi
57}
58
59# Mount the directories we need
60for m in /dev /dev/pts /dev/shm /proc /sys /tmp; do
61 safe_mount $m
62done
63
64# Set up the environment
65export PATH=/bin:/usr/bin:/sbin:/usr/sbin
66export HOME=/home/$USER
67
68if [ ! -f "$ROOTFS/.pokychroot.init" ]; then
69 sudo $CHROOTUID -i "$ROOTFS" $USER /bin/sh -c "/usr/bin/poky-chroot-init"
70 touch "$ROOTFS/.pokychroot.init"
71fi
72
73$XEPHYR :1 -ac -screen 640x480x16 &
74
75# Go go go!
76sudo $CHROOTUID -i "$ROOTFS" $USER "$@" || /bin/true
77
78# Trap term signals so we don't kill ourselves
79trap true TERM
80# send term signal to the process group
81kill -- -$$
82
83# Unmount TODO: only umount if there are no other sessions active, somehow.
84for m in /tmp /sys /proc /dev/shm /dev/pts /dev; do
85 safe_umount $m
86done