File: fakechroot.in

package info (click to toggle)
fakechroot 2.9-1.1%2Bsqueeze1
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 2,316 kB
  • ctags: 408
  • sloc: sh: 10,537; ansic: 2,223; perl: 126; makefile: 40
file content (110 lines) | stat: -rw-r--r-- 1,926 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
#!/bin/sh

# $Id: /local/trunk/scripts/fakechroot.in 160 2005-09-08T15:35:16.405737Z dexter  $

usage () {
cat - >&2 <<EOF
fakechroot, create a fake chroot environment.
   usage: fakechroot [-l|--lib fakechrootlib]
                     [-s|--use-system-libs]
                     [-h|--help] [-v|--version]
                     [--] [command]
EOF
  exit 1
}

LIB=lib@fakechroot_transformed@.so
PATHS=@libpath@

FAKECHROOT=true
export FAKECHROOT

FAKECHROOT_VERSION=@VERSION@
export FAKECHROOT_VERSION

libfound=no

GETOPTEST=`getopt --version`
case $GETOPTEST in
getopt*) # GNU getopt
    TEMP=`getopt -l lib: -l use-system-libs -l version -l help -- +l:svh "$@"`
    ;;
*) # POSIX getopt ?
    TEMP=`getopt l:svh "$@"`
    ;;
esac

if test "$?" -ne 0; then
  usage
fi

eval set -- "$TEMP"

while test "X$1" != "X--"; do
  case "$1" in
    -l|--lib)
       shift
       LIB=`eval echo "$1"`
       PATHS=
       ;;
    -v|--version)
       echo "fakechroot version @VERSION@"
       exit 0
       ;;
    -s|--use-system-libs)
       PATHS="$PATHS:/usr/lib:/lib"
       ;;
    -h|--help)
       usage
       ;;
  esac
  shift
done

shift #get rid of the '--'

# make sure the preload is available
if [ -n "$PATHS" ]
then
    for dir in `echo $PATHS | sed 's/:/ /g'`
    do
	if test -r "$dir/$LIB"
	then
	    libfound=yes
	fi
    done
else
    if test -r "$LIB"
    then
	libfound=yes
    fi
fi

if test $libfound = no
then
    echo >&2 "fakechroot: preload library not found, aborting."
    exit 1
fi

# Keep other library paths
if test -n "$LD_LIBRARY_PATH"; then
  PATHS="$PATHS:$LD_LIBRARY_PATH"
fi
# ...and preloaded libs
if test -n "$LD_PRELOAD"; then
  LIB="$LIB $LD_PRELOAD"
fi

if test -z "$*"; then
  LD_LIBRARY_PATH="$PATHS"
  LD_PRELOAD="$LIB"
  export LD_LIBRARY_PATH LD_PRELOAD
  exec ${SHELL:-/bin/sh}
else
  LD_LIBRARY_PATH="$PATHS"
  LD_PRELOAD="$LIB"
  export LD_LIBRARY_PATH LD_PRELOAD
  exec "$@"
fi

exit 1