source: MondoRescue/branches/stable/mindi-busybox/applets/install.sh @ 821

Last change on this file since 821 was 821, checked in by Bruno Cornec, 14 years ago

Addition of busybox 1.2.1 as a mindi-busybox new package
This should avoid delivering binary files in mindi not built there (Fedora and Debian are quite serious about that)

  • Property svn:executable set to *
File size: 2.0 KB
Line 
1#!/bin/sh
2
3export LC_ALL=POSIX
4export LC_CTYPE=POSIX
5
6prefix=${1}
7if [ -z "$prefix" ]; then
8    echo "usage: applets/install.sh DESTINATION [--symlinks/--hardlinks]"
9    exit 1;
10fi
11h=`sort busybox.links | uniq`
12cleanup="0"
13noclobber="0"
14case "$2" in
15    --hardlinks) linkopts="-f";;
16    --symlinks)  linkopts="-fs";;
17    --cleanup)   cleanup="1";;
18    --noclobber) noclobber="1";;
19    "")          h="";;
20    *)           echo "Unknown install option: $2"; exit 1;;
21esac
22
23if [ -n "$DO_INSTALL_LIBS" ] && [ "$DO_INSTALL_LIBS" != "n" ]; then
24    # get the target dir for the libs
25    # assume it starts with lib
26    libdir=$($CC -print-file-name=libc.so | \
27         sed -n 's%^.*\(/lib[^\/]*\)/libc.so%\1%p')
28    if test -z "$libdir"; then
29        libdir=/lib
30    fi
31
32    mkdir -p $prefix/$libdir || exit 1
33    for i in $DO_INSTALL_LIBS; do
34        rm -f $prefix/$libdir/$i || exit 1
35        if [ -f $i ]; then
36            cp -a $i $prefix/$libdir/ || exit 1
37            chmod 0644 $prefix/$libdir/$i || exit 1
38        fi
39    done
40fi
41
42if [ "$cleanup" = "1" ] && [ -e "$prefix/bin/busybox" ]; then
43    inode=`ls -i "$prefix/bin/busybox" | awk '{print $1}'`
44    sub_shell_it=`
45    cd "$prefix"
46    for d in usr/sbin usr/bin sbin bin ; do
47        pd=$PWD
48        if [ -d "$d" ]; then
49            cd $d
50            ls -iL . | grep "^ *$inode" | awk '{print $2}' | env -i xargs rm -f
51        fi
52        cd "$pd"
53    done
54    `
55fi
56
57rm -f $prefix/bin/busybox || exit 1
58mkdir -p $prefix/bin || exit 1
59install -m 755 busybox $prefix/bin/busybox || exit 1
60
61for i in $h ; do
62    appdir=`dirname $i`
63    mkdir -p $prefix/$appdir || exit 1
64    if [ "$2" = "--hardlinks" ]; then
65        bb_path="$prefix/bin/busybox"
66    else
67        case "$appdir" in
68        /)
69            bb_path="bin/busybox"
70        ;;
71        /bin)
72            bb_path="busybox"
73        ;;
74        /sbin)
75            bb_path="../bin/busybox"
76        ;;
77        /usr/bin|/usr/sbin)
78            bb_path="../../bin/busybox"
79        ;;
80        *)
81        echo "Unknown installation directory: $appdir"
82        exit 1
83        ;;
84        esac
85    fi
86    if [ "$noclobber" = "0" ] || [ ! -e "$prefix$i" ]; then
87        echo $prefix$i -> $bb_path"
88        ln $linkopts $bb_path $prefix$i || exit 1
89    else
90        echo $prefix$i already exists"
91    fi
92done
93
94exit 0
Note: See TracBrowser for help on using the repository browser.