home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World 2000 February
/
PCWorld_2000-02_cd.bin
/
live
/
sbin
/
update-modules
< prev
Wrap
Text File
|
1999-01-23
|
2KB
|
106 lines
#! /bin/sh -e
#
# This is the update-modules script for Debian GNU/Linux.
# Written by Wichert Akkerman <wakkerma@debian.org>
# Copyright (C) 1998, 1999 Software in the Public Interest
#
CFGFILE=/etc/conf.modules
ARCHDIR=/etc/modutils/arch
HEADER="### This file is automatically generated by update-modules"
arch() {
local model=`uname -m`
case $model in
i[0-9]86) model=i386; ;;
sun4u) model=sparc64; ;;
arm*) model=arm; ;;
ppc) model=powerpc; ;;
esac
echo $model
}
archmodel() {
local arch=`arch`
local model=""
if [ $arch = "m68k" ]; then
if [ -f /proc/hardware ]; then
model=`cat /proc/hardware | sed -ne 's/^Model:[[:space:]]*//p'`
case $model in
Atari*) model="atari"; ;;
Amiga*) model="amiga"; ;;
Macintosh*) model="mac"; ;;
Motorola*) model="MVME"; ;;
*) model="generic"; ;;
esac
model=".${model}"
else
echo "/proc/hardware does not exist, assuming general m68k system"
fi
fi
echo "${arch}${model}"
}
if [ -f $CFGFILE ]; then
if ! head -1 $CFGFILE | grep -q "^$HEADER" ; then
echo "Error: the current $CFGFILE is not automatically generated."
if [ "$1" != "force" ]; then
echo "Use \"`basename $0` force\" to force (re)generation."
exit 1
else
echo "force specified, (re)gerating file anyway."
fi
fi
fi
if [ `id -u` != "0" ]; then
echo "You have to be root to do this."
exit 2
fi
model=`archmodel`
oldmodel=$model
while [ ! -f ${ARCHDIR}/${model} ]; do
oldmodel=$model
model=`echo $oldmodel | sed -e 's/\.[^.]\+//'`
if [ "$model" = "$oldmodel" ]; then
break
fi
echo "Configuration for $oldmodel not found, trying $model"
done
CONF="${ARCHDIR}/${model}"
if [ ! -f $CONF ]; then
echo "Architecture-specific modutils configuration not found, using defaults"
CONF="${ARCHDIR}/generic"
fi
if [ -e $CFGFILE ]; then
mv $CFGFILE ${CFGFILE}.old
fi
echo $HEADER > $CFGFILE
cat <<EOF >> $CFGFILE
#
# Please do not edit this file directly. If you want to change or add
# anything please take a look at the files in /etc/modutils and read
# the manpage for update-modules.
#
EOF
for cfg in /etc/modutils/* $CONF ; do
if [ -f $cfg ]; then # this check is necesarry to skip /etc/modutils/archs
if ! echo $cfg | grep -q '\(\.dpkg-orig\|\.dpkg-dist\|~\)$' ; then
if [ -x $cfg ]; then
$cfg >> $CFGFILE
else
cat $cfg >> $CFGFILE
fi
fi
fi
done