64 lines
1.6 KiB
Bash
Executable File
64 lines
1.6 KiB
Bash
Executable File
#!/bin/sh
|
|
# Original author: ???
|
|
#
|
|
# Additions by Steph Meslin-Weber:
|
|
# x Percentage display
|
|
# x Dot display of dependency installations
|
|
# - removed both of above
|
|
# - display is now X of Y packages and current package name being installed
|
|
|
|
#. /etc/default/rcS
|
|
|
|
reconfigure () {
|
|
pkg=$1
|
|
path=$2
|
|
isdependent=$3
|
|
test -e "$path/info/$pkg.control" || return 1
|
|
depends="`cat $path/info/$pkg.control|grep Depends|cut -d: -f2`"
|
|
|
|
# make sure we haven't already installed this package
|
|
isthere=`cat /tmp/.configured.list|grep $pkg`
|
|
if test "$isthere" != ""; then
|
|
return 1
|
|
fi
|
|
|
|
if test "$depends" != ""; then
|
|
for dep in $depends; do
|
|
(echo $log|grep $dep >/dev/null 2>&1) || ( reconfigure $dep $path "$max" "$pkg" && log="$log $dep"; )
|
|
done
|
|
fi
|
|
|
|
echo -ne " ${pkg}"
|
|
|
|
test -e "$path/info/$pkg.prerm" && $path/info/$pkg.prerm unconfigure >/dev/null 2>&1
|
|
test -e "$path/info/$pkg.postinst" && $path/info/$pkg.postinst configure >/dev/null 2>&1
|
|
|
|
log="$log $pkg"
|
|
|
|
# append the installed package name to the list
|
|
echo -ne "$pkg\n" >> /tmp/.configured.list
|
|
|
|
echo
|
|
return 0
|
|
}
|
|
|
|
if test ! -e /etc/.configured; then
|
|
echo "Reconfiguring all packages installed to root:"
|
|
|
|
# create unique packages list file
|
|
rm -f /tmp/.configured.list
|
|
touch /tmp/.configured.list
|
|
|
|
log=""
|
|
|
|
for control in /usr/lib/ipkg/info/*.control; do
|
|
package=`echo $control|sed -e 's,.*/,,g; s,\.control,,g;'`
|
|
(echo $log|grep $package >/dev/null 2>&1) || reconfigure $package /usr/lib/ipkg
|
|
done
|
|
|
|
# cleanup unique packages list file
|
|
rm -f /tmp/.configured.list
|
|
fi
|
|
|
|
test -f /usr/lib/ipkg/info/task-ramses || ipkg install task-ramses
|