+dracutlibdirs() {
+ for d in lib64/dracut lib/dracut usr/lib64/dracut usr/lib/dracut; do
+ echo "$d/$1"
+ done
+}
+
+extract_files()
+{
+ (( ${#filenames[@]} == 1 )) && nofileinfo=1
+ for f in "${!filenames[@]}"; do
+ [[ $nofileinfo ]] || echo "initramfs:/$f"
+ [[ $nofileinfo ]] || echo "========================================================================"
+ $CAT "$image" 2>/dev/null | cpio --extract --verbose --quiet --to-stdout "$f" 2>/dev/null
+ ((ret+=$?))
+ [[ $nofileinfo ]] || echo "========================================================================"
+ [[ $nofileinfo ]] || echo
+ done
+}
+
+list_modules()
+{
+ echo "dracut modules:"
+ $CAT "$image" | cpio --extract --verbose --quiet --to-stdout -- \
+ $(dracutlibdirs modules.txt) 2>/dev/null
+ ((ret+=$?))
+}
+
+list_files()
+{
+ echo "========================================================================"
+ if [ "$sorted" -eq 1 ]; then
+ $CAT "$image" 2>/dev/null | cpio --extract --verbose --quiet --list | sort -n -k5
+ else
+ $CAT "$image" 2>/dev/null | cpio --extract --verbose --quiet --list | sort -k9
+ fi
+ ((ret+=$?))
+ echo "========================================================================"
+}
+
+unpack_files()
+{
+ if (( ${#filenames[@]} > 0 )); then
+ for f in "${!filenames[@]}"; do
+ $CAT "$image" 2>/dev/null | cpio -id --quiet $verbose $f
+ ((ret+=$?))
+ done
+ else
+ $CAT "$image" 2>/dev/null | cpio -id --quiet $verbose
+ ((ret+=$?))
+ fi
+}
+
+
+if (( ${#filenames[@]} <= 0 )) && [[ -z "$unpack" ]] && [[ -z "$unpackearly" ]]; then
+ echo "Image: $image: $(du -h $image | while read a b || [ -n "$a" ]; do echo $a;done)"
+ echo "========================================================================"