X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=scripts%2Fboot%2F9990-misc-helpers.sh;h=83b822d4ef4fff2261af06f646e5b5b5cf29876a;hb=38c96516f54ed40e8d3355a639afb0d956fd0a3b;hp=18befee504f60ac9ba3d3c2ec7105a025504a552;hpb=9555545410914f4f6cf1b1c00bb4a5b5dfe2b5cc;p=live-boot-grml.git diff --git a/scripts/boot/9990-misc-helpers.sh b/scripts/boot/9990-misc-helpers.sh index 18befee..83b822d 100755 --- a/scripts/boot/9990-misc-helpers.sh +++ b/scripts/boot/9990-misc-helpers.sh @@ -2,21 +2,21 @@ #set -e -is_live_path () +file_pattern_matches() { - DIRECTORY="${1}" - - if [ -d "${DIRECTORY}"/"${LIVE_MEDIA_PATH}" ] - then - for FILESYSTEM in squashfs ext2 ext3 ext4 xfs dir jffs2 - do - if [ "$(echo ${DIRECTORY}/${LIVE_MEDIA_PATH}/*.${FILESYSTEM})" != "${DIRECTORY}/${LIVE_MEDIA_PATH}/*.${FILESYSTEM}" ] - then - return 0 - fi - done - fi + [ -e "$1" ] +} +is_live_path() +{ + DIRECTORY="${1}/${LIVE_MEDIA_PATH}" + for FILESYSTEM in squashfs ext2 ext3 ext4 xfs dir jffs + do + if file_pattern_matches "${DIRECTORY}/"*.${FILESYSTEM} + then + return 0 + fi + done return 1 } @@ -62,32 +62,13 @@ get_backing_device () esac } -match_files_in_dir () -{ - # Does any files match pattern ${1} ? - local pattern - pattern="${1}" - - if [ "$(echo ${pattern})" != "${pattern}" ] - then - return 0 - fi - - return 1 -} - mount_images_in_directory () { directory="${1}" rootmnt="${2}" mac="${3}" - if match_files_in_dir "${directory}/${LIVE_MEDIA_PATH}/*.squashfs" || - match_files_in_dir "${directory}/${LIVE_MEDIA_PATH}/*.ext2" || - match_files_in_dir "${directory}/${LIVE_MEDIA_PATH}/*.ext3" || - match_files_in_dir "${directory}/${LIVE_MEDIA_PATH}/*.ext4" || - match_files_in_dir "${directory}/${LIVE_MEDIA_PATH}/*.jffs2" || - match_files_in_dir "${directory}/${LIVE_MEDIA_PATH}/*.dir" + if is_live_path "${directory}" then [ -n "${mac}" ] && adddirectory="${directory}/${LIVE_MEDIA_PATH}/${mac}" setup_unionfs "${directory}/${LIVE_MEDIA_PATH}" "${rootmnt}" "${adddirectory}" @@ -608,7 +589,7 @@ load_keymap () # Load custom keymap if [ -x /bin/loadkeys -a -r /etc/boottime.kmap.gz ] then - loadkeys /etc/boottime.kmap.gz + loadkeys --quiet /etc/boottime.kmap.gz fi } @@ -1140,12 +1121,12 @@ link_files () # is non-empty, remove mask from all source paths when # creating links (will be necessary if we change root, which # live-boot normally does (into $rootmnt)). - local src_dir dest_dir src_mask + local src_dir dest_dir src_transform # remove multiple /:s and ensure ending on / src_dir="$(trim_path ${1})/" dest_dir="$(trim_path ${2})/" - src_mask="${3}" + src_transform="${3}" # This check can only trigger on the inital, non-recursive call since # we create the destination before recursive calls @@ -1172,12 +1153,12 @@ link_files () chown_ref "${src}" "${dest}" chmod_ref "${src}" "${dest}" fi - link_files "${src}" "${dest}" "${src_mask}" + link_files "${src}" "${dest}" "${src_transform}" else final_src=${src} - if [ -n "${src_mask}" ] + if [ -n "${src_transform}" ] then - final_src="$(echo ${final_src} | sed "s|^${src_mask}||")" + final_src="$(echo ${final_src} | sed "${src_transform}")" fi rm -rf "${dest}" 2> /dev/null ln -s "${final_src}" "${dest}" @@ -1482,7 +1463,7 @@ activate_custom_mounts () # ignore the loop below and set rootfs_dest_backing=$dest local rootfs_dest_backing rootfs_dest_backing="" - if [ -n "${opt_link}"] + if [ -n "${opt_link}" ] || [ -n "${opt_union}" ] then for d in /live/rootfs/* do @@ -1502,7 +1483,7 @@ activate_custom_mounts () local cow_dir links_source if [ -n "${opt_link}" ] && [ -z "${PERSISTENCE_READONLY}" ] then - link_files ${source} ${dest} ${rootmnt} + link_files ${source} ${dest} "s|^/live/|/lib/live/mount/|" elif [ -n "${opt_link}" ] && [ -n "${PERSISTENCE_READONLY}" ] then mkdir -p ${rootmnt}/lib/live/mount/persistence @@ -1519,7 +1500,7 @@ activate_custom_mounts () chown_ref "${source}" "${cow_dir}" chmod_ref "${source}" "${cow_dir}" do_union ${links_source} ${cow_dir} ${source} ${rootfs_dest_backing} - link_files ${links_source} ${dest} ${rootmnt} + link_files ${links_source} ${dest} "s|^${rootmnt}||" elif [ -n "${opt_union}" ] && [ -z "${PERSISTENCE_READONLY}" ] then do_union ${dest} ${source} ${rootfs_dest_backing}