home *** CD-ROM | disk | FTP | other *** search
- #! /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
-
-