From: Luca Berra Date: Wed, 13 Jan 2010 15:03:32 +0000 (+0100) Subject: add mkinitrd-dracut.sh wrapper X-Git-Tag: 004~17 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b21d5cb2dcfc1e4a2320ca106d49cc764955d0f2;p=thirdparty%2Fdracut-ng.git add mkinitrd-dracut.sh wrapper a wrapper around dracut with the syntax from mkinitrd, could help transition to dracut. --- diff --git a/mkinitrd-dracut.sh b/mkinitrd-dracut.sh new file mode 100644 index 000000000..64b3069d1 --- /dev/null +++ b/mkinitrd-dracut.sh @@ -0,0 +1,150 @@ +#!/bin/bash --norc + +error() { + local NONL="" + if [ "$1" == "-n" ]; then + NONL="-n" + shift + fi + echo $NONL "$@" > /dev/stderr +} + +usage () { + if [ "$1" == "-n" ]; then + cmd=echo + else + cmd=error + fi + + $cmd "usage: `basename $0` [--version] [--help] [-v] [-f] [--preload ]" + $cmd " [--image-version] [--with=]" + $cmd " " + $cmd "" + $cmd " (ex: `basename $0` /boot/initramfs-$(uname -r).img $(uname -r))" + + if [ "$1" == "-n" ]; then + exit 0 + else + exit 1 + fi +} + + +while [ $# -gt 0 ]; do + case $1 in + --with-usb*) + if [ "$1" != "${1##--with-usb=}" ]; then + usbmodule=${1##--with-usb=} + else + usbmodule="usb-storage" + fi + basicmodules="$basicmodules $usbmodule" + unset usbmodule + ;; + --with-avail*) + if [ "$1" != "${1##--with-avail=}" ]; then + modname=${1##--with-avail=} + else + modname=$2 + shift + fi + + basicmodules="$basicmodules $modname" + ;; + --with*) + if [ "$1" != "${1##--with=}" ]; then + modname=${1##--with=} + else + modname=$2 + shift + fi + + basicmodules="$basicmodules $modname" + ;; + --version) + echo "mkinitrd: dracut compatibility wrapper" + exit 0 + ;; + -v|--verbose) + dracut_args="${dracut_args} -v" + ;; + -f) + dracut_args="${dracut_args} -f" + ;; + --preload*) + if [ "$1" != "${1##--preload=}" ]; then + modname=${1##--preload=} + else + modname=$2 + shift + fi + basicmodules="$basicmodules $modname" + ;; + --image-version) + img_vers=yes + ;; + --rootfs*) + if [ "$1" != "${1##--rootfs=}" ]; then + rootfs="${1##--rootfs=}" + else + rootfs="$2" + shift + fi + dracut_args="${dracut_args} --filesystems $rootfs" + ;; + --builtin*) ;; + --without*) ;; + --without-usb) ;; + --fstab*) ;; + --nocompress) ;; + --ifneeded) ;; + --omit-scsi-modules) ;; + --omit-ide-modules) ;; + --omit-raid-modules) ;; + --omit-lvm-modules) ;; + --omit-dmraid) ;; + --allow-missing) ;; + --net-dev*) ;; + --noresume) ;; + --rootdev*) ;; + --thawdev*) ;; + --rootopts*) ;; + --root*) ;; + --loopdev*) ;; + --loopfs*) ;; + --loopopts*) ;; + --looppath*) ;; + --dsdt*) ;; + --bootchart) ;; + --help) + usage -n + ;; + *) + if [ -z "$target" ]; then + target=$1 + elif [ -z "$kernel" ]; then + kernel=$1 + else + usage + fi + ;; + esac + + shift +done + +if [ -z "$target" -o -z "$kernel" ]; then + usage +fi + +if [ -n "$img_vers" ]; then + target="$target-$kernel" +fi + +if [ -n "$basicmodules" ]; then + dracut -H $dracut_args --add-drivers "$basicmodules" "$target" "$kernel" +else + dracut -H $dracut_args "$target" "$kernel" +fi + +# vim:ts=8:sw=4:sts=4:et