~ubuntu-branches/debian/wheezy/agtl/wheezy

« back to all changes in this revision

Viewing changes to ipkg-utils-1.7/ipkg-link

  • Committer: Bazaar Package Importer
  • Author(s): Heiko Stuebner
  • Date: 2011-01-22 13:55:12 UTC
  • mfrom: (1.1.5 upstream)
  • Revision ID: james.westby@ubuntu.com-20110122135512-1mik0vssgpnx2fgu
Tags: 0.8.0.3-1
New upstream release

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/bin/sh
 
2
#
 
3
# <zaurus@bredband.net>
 
4
# Modified by Aman Gupta <oz@themastermind1.net>
 
5
 
 
6
usage () {
 
7
        echo "Usage: "
 
8
        echo "    $0 add    packagename (links \"packagename\" to root filesystem)"
 
9
        echo "    $0 remove packagename (unlinks \"packagename\" from root filesystem)"
 
10
        echo "    $0 list   mountpoint  (lists packages on \"mountpoint\", e.g. '/mnt/card')"
 
11
        echo "    $0 mount  mountpoint  (links all packages on \"mountpoint\", e.g. '/mnt/card')"
 
12
        echo "    $0 umount mountpoint  (unlinks all packages on \"mountpoint\", e.g. '/mnt/card')"
 
13
        exit
 
14
}
 
15
 
 
16
findpackage () {
 
17
        echo "*** Locating package"
 
18
        # Does the list file exist?
 
19
        if [ -e "/mnt/card/usr/lib/ipkg/info/$PACKAGE.list" ]; then
 
20
                PREFIX="/mnt/card"
 
21
        else
 
22
                if [ -e "/mnt/cf/usr/lib/ipkg/info/$PACKAGE.list" ]; then
 
23
                        PREFIX="/mnt/cf"                
 
24
                else
 
25
                        if [ -e "/mnt/ram/usr/lib/ipkg/info/$PACKAGE.list" ]; then
 
26
                                PREFIX="/mnt/ram"
 
27
                        else
 
28
                                echo "Package \"$PACKAGE\" not found."
 
29
                                exit
 
30
                        fi
 
31
                fi
 
32
        fi
 
33
        files=`cat "$PREFIX/usr/lib/ipkg/info/$PACKAGE.list"`
 
34
        echo "*** Found package on $PREFIX"
 
35
}
 
36
 
 
37
add () {
 
38
        echo "*** Adding $PACKAGE"
 
39
        echo "$files" |
 
40
        while read line; do
 
41
                if [ ! -e "$line" ]; then
 
42
                        # Only if it doesn't already exist.
 
43
                        if [ -d "$PREFIX$line" ]; then
 
44
                                # It's a directory.
 
45
                                `mkdir "$line"`
 
46
                        else
 
47
                                # It's a file.
 
48
                                `ln -s "$PREFIX$line" "$line"`
 
49
                        fi
 
50
                fi
 
51
        done
 
52
}
 
53
 
 
54
remove () {
 
55
        echo "*** Removing $PACKAGE"
 
56
        files=`cat "$PREFIX/usr/lib/ipkg/info/$PACKAGE.list" | sort -r`
 
57
        echo "$files" |
 
58
        while read line; do
 
59
                if [ -e "$line" ]; then
 
60
                        # File/Directory exists.
 
61
                        if [ -d "$line" ]; then
 
62
                                # Directory.
 
63
                                contents=$(ls -1 "$line")
 
64
                                if [ ! "$contents" ]; then
 
65
                                        # Empty directory
 
66
                                        rmdir "$line"
 
67
                                fi
 
68
                        elif [ -L "$line" ]; then
 
69
                                rm "$line"
 
70
                        fi
 
71
                fi
 
72
        done
 
73
}
 
74
 
 
75
list () {
 
76
        filelist=""
 
77
        files=`ls -1 $LOCATION/usr/lib/ipkg/info/*.list`
 
78
        for filename in $files; do
 
79
                filename=${filename##*/}
 
80
                filename=${filename%%.list}
 
81
                filelist="$filelist $filename"
 
82
        done
 
83
}
 
84
 
 
85
COMMAND=$1
 
86
PACKAGE=$2
 
87
LOCATION=$2
 
88
 
 
89
if [ $# -ne 2 ]
 
90
then
 
91
        usage
 
92
fi
 
93
 
 
94
echo "*** Command: $COMMAND"
 
95
case "$COMMAND" in
 
96
        "add" )
 
97
                findpackage
 
98
                add
 
99
                ;;
 
100
        "remove" )
 
101
                findpackage
 
102
                remove
 
103
                ;;
 
104
        "list" )
 
105
                list
 
106
                for file in $filelist; do
 
107
                        echo $file
 
108
                done
 
109
                ;;
 
110
        "mount" )
 
111
                list
 
112
                for file in $filelist; do
 
113
                        $0 add $file
 
114
                done
 
115
                ;;
 
116
        "umount" )
 
117
                list
 
118
                for file in $filelist; do
 
119
                        $0 remove $file
 
120
                done
 
121
esac
 
122
 
 
123
echo "*** Done."
 
124
echo ""
 
125
exit
 
126