ns-chroot - ns-tools - Namespace utilities to reuse Open Source packaging efforts.
 (HTM) git clone git://r-36.net/ns-tools
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
       ns-chroot (1074B)
       ---
            1 #!/bin/sh
            2 
            3 basen="$(basename "$0")"
            4 dounprepare=0
            5 
            6 if [ "$basen" != "ns-chroot" ];
            7 then
            8         nsrootn="$basen"
            9         [ $# -gt 1 ] && [ "$1" = "-u" ] && dounprepare=1 && shift 1
           10 else
           11         if [ $# -lt 1 ];
           12         then
           13                 printf "usage: %s [-u] ns [cmd]\n" "$(basename $0)" >&2
           14                 exit 1
           15         fi
           16         [ $# -gt 1 ] && [ "$1" = "-u" ] && dounprepare=1 && shift 1
           17 
           18         nsrootn="$1"
           19         shift 1
           20 fi
           21 
           22 if [ -z "$nsrootn" ];
           23 then
           24         printf "usage: %s [-u] ns [cmd]\n" "$(basename $0)" >&2
           25         exit 1
           26 fi
           27 
           28 curdir="$(pwd)"
           29 
           30 nsroot="$(ns-root "$nsrootn")"
           31 [ $? -gt 0 ] && exit $?
           32 
           33 [ -e "$nsroot/.ns/rc.conf" ] && . "$nsroot/.ns/rc.conf"
           34 if [ -n "$SHBIN" ];
           35 then
           36         cmd="$SHBIN"
           37 else
           38         cmd="/bin/sh"
           39 fi
           40 [ $# -gt 0 ] && cmd="$1" && shift 1
           41 
           42 ns-prepare "$nsroot"
           43 [ $? -gt 0 ] && exit 1
           44 
           45 export PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin"
           46 if [ ! -d "${nsroot}${curdir}" ];
           47 then
           48         capchroot "$nsroot" $cmd -- "$@"
           49 else
           50         capchroot -d "$curdir" "$nsroot" $cmd -- "$@"
           51 fi
           52 
           53 if [ $dounprepare -eq 1 ];
           54 then
           55         ns-unprepare "$nsroot"
           56 else
           57         lsof "$nsroot" >/dev/null 2>&1
           58         [ $? -gt 0 ] && ns-unprepare "$nsroot"
           59 fi
           60 
           61 exit 0
           62