]> git.ipfire.org Git - thirdparty/dracut.git/commitdiff
lsinird: Adding option "-m|--mod" to list dracut modules in the image
authorHari Bathini <hbathini@linux.vnet.ibm.com>
Mon, 2 Jun 2014 10:57:37 +0000 (16:27 +0530)
committerHarald Hoyer <harald@redhat.com>
Fri, 20 Jun 2014 12:34:30 +0000 (14:34 +0200)
This patch adds option "-m|--mod" to lsinitrd to list dracut
modules in the image  because sometimes  having an option to
only list the dracut modules in the image could be handy.

Sample output:
--------------

[hbathini@localhost dracut]$ sudo ./lsinitrd.sh initramfs-3.11.10-100.fc18.x86_64.img -m
Image: initramfs-3.11.10-100.fc18.x86_64.img: 33M
========================================================================
Version: dracut-029-1.fc18.2

dracut modules:
i18n
network
ifcfg
drm
plymouth
btrfs
crypt
dm
dmraid
kernel-modules
lvm
mdraid
cifs
iscsi
nfs
resume
rootfs-block
terminfo
udev-rules
biosdevname
systemd
usrmount
base
fs-lib
shutdown
========================================================================

Signed-off-by: Hari Bathini <hbathini@linux.vnet.ibm.com>
lsinitrd.sh

index 4ba8752c4b27635f0e2cb3641f1e49e60c6c6875..76d9f3e4390c5ee6afebadcd0ff01e74bd4695f3 100755 (executable)
@@ -27,6 +27,7 @@ usage()
         echo
         echo "-h, --help                  print a help message and exit."
         echo "-s, --size                  sort the contents of the initramfs by size."
+        echo "-m, --mod                   list modules."
         echo "-f, --file <filename>       print the contents of <filename>."
         echo "-k, --kver <kernel version> inspect the initramfs of <kernel version>."
         echo
@@ -37,13 +38,15 @@ usage()
 [[ $dracutbasedir ]] || dracutbasedir=/usr/lib/dracut
 
 sorted=0
+modules=0
 declare -A filenames
 
 unset POSIXLY_CORRECT
 TEMP=$(getopt \
-    -o "shf:k:" \
+    -o "shmf:k:" \
     --long kver: \
     --long file: \
+    --long mod \
     --long help \
     --long size \
     -- "$@")
@@ -61,6 +64,7 @@ while (($# > 0)); do
         -f|--file)  filenames[${2#/}]=1; shift;;
         -s|--size)  sorted=1;;
         -h|--help)  usage; exit 0;;
+        -m|--mod)   modules=1;;
         --)         shift;break;;
         *)          usage; exit 1;;
     esac
@@ -119,6 +123,13 @@ extract_files()
     done
 }
 
+list_modules()
+{
+    echo "dracut modules:"
+    $CAT "$image" | cpio --extract --verbose --quiet --to-stdout -- 'lib/dracut/modules.txt' 'usr/lib/dracut/modules.txt' 2>/dev/null
+    ((ret+=$?))
+}
+
 list_files()
 {
     echo "========================================================================"
@@ -212,13 +223,16 @@ else
     ((ret+=$?))
     echo "Version: $version"
     echo
-    echo -n "Arguments: "
-    $CAT "$image" | cpio --extract --verbose --quiet --to-stdout -- 'lib/dracut/build-parameter.txt' 'usr/lib/dracut/build-parameter.txt' 2>/dev/null
-    echo
-    echo "dracut modules:"
-    $CAT "$image" | cpio --extract --verbose --quiet --to-stdout -- 'lib/dracut/modules.txt' 'usr/lib/dracut/modules.txt' 2>/dev/null
-    ((ret+=$?))
-    list_files
+    if [ "$modules" -eq 1 ]; then
+        list_modules
+        echo "========================================================================"
+    else
+        echo -n "Arguments: "
+        $CAT "$image" | cpio --extract --verbose --quiet --to-stdout -- 'lib/dracut/build-parameter.txt' 'usr/lib/dracut/build-parameter.txt' 2>/dev/null
+        echo
+        list_modules
+        list_files
+    fi
 fi
 
 exit $ret