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" ||
eval export "${STRING}"="${VALUE}"
}
-is_in_list_separator_helper () {
+is_in_list_separator_helper ()
+{
local sep=${1}
shift
local element=${1}
echo ${list} | grep -qe "^\(.*${sep}\)\?${element}\(${sep}.*\)\?$"
}
-is_in_space_sep_list () {
+is_in_space_sep_list ()
+{
local element=${1}
shift
is_in_list_separator_helper "[[:space:]]" "${element}" "${*}"
}
-is_in_comma_sep_list () {
+is_in_comma_sep_list ()
+{
local element=${1}
shift
is_in_list_separator_helper "," "${element}" "${*}"
grep -m1 "^${device} " /proc/mounts | cut -f2 -d ' '
}
-trim_path () {
- # remove all unnecessary /:s in the path, including last one (except
- # if path is just "/")
- echo ${1} | sed 's|//\+|/|g' | sed 's|^\(.*[^/]\)/$|\1|'
+trim_path ()
+{
+ # remove all unnecessary /:s in the path, including last one (except
+ # if path is just "/")
+ echo ${1} | sed 's|//\+|/|g' | sed 's|^\(.*[^/]\)/$|\1|'
}
what_is_mounted_on ()
return 0
}
-close_persistence_media () {
+close_persistence_media ()
+{
local device=${1}
local backing="$(where_is_mounted ${device})"
probe_for_gpt_name ()
{
local overlays="${1}"
- local snapshots="${2}"
- local dev="${3}"
+ local dev="${2}"
local gpt_dev="${dev}"
if is_active_luks_mapping ${dev}
fi
local gpt_name=$(get_gpt_name ${gpt_dev})
- for label in ${overlays} ${snapshots}
+ for label in ${overlays}
do
if [ "${gpt_name}" = "${label}" ]
then
probe_for_fs_label ()
{
local overlays="${1}"
- local snapshots="${2}"
- local dev="${3}"
+ local dev="${2}"
- for label in ${overlays} ${snapshots}
+ for label in ${overlays}
do
if [ "$(/sbin/blkid -s LABEL -o value $dev 2>/dev/null)" = "${label}" ]
then
probe_for_file_name ()
{
local overlays="${1}"
- local snapshots="${2}"
- local dev="${3}"
+ local dev="${2}"
local ret=""
local backing="$(mount_persistence_media ${dev} probe)"
ret="${ret} ${label}=${loopdev}"
fi
done
- for label in ${snapshots}
- do
- for ext in squashfs cpio.gz ext2 ext3 ext4 jffs2
- do
- path="${PERSISTENCE_PATH}${label}.${ext}"
- if [ -f "${backing}/${path}" ]
- then
- ret="${ret} ${label}=${dev}:${backing}:${path}"
- fi
- done
- done
if [ -n "${ret}" ]
then
find_persistence_media ()
{
- # Scans devices for overlays and snapshots, and returns a whitespace
+ # Scans devices for overlays, and returns a whitespace
# separated list of how to use them. Only overlays with a partition
- # label or file name in ${overlays} are returned, and ditto for
- # snapshots with labels in ${snapshots}.
+ # label or file name in ${overlays} are returned.
#
# When scanning a LUKS device, the user will be asked to enter the
# passphrase; on failure to enter it, or if no persistence partitions
# or files were found, the LUKS device is closed.
#
- # For a snapshot file the return value is ${label}=${snapdata}", where
- # ${snapdata} is the parameter used for try_snap().
- #
- # For all other cases (overlay/snapshot partition and overlay file) the
+ # For all other cases (overlay partition and overlay file) the
# return value is "${label}=${device}", where ${device} a device that
# can mount the content. In the case of an overlay file, the device
# containing the file will remain mounted as a side-effect.
# scanned.
local overlays="${1}"
- local snapshots="${2}"
- local white_listed_devices="${3}"
+ local white_listed_devices="${2}"
local ret=""
local black_listed_devices="$(what_is_mounted_on /live/image)"
# in order to probe any filesystem it contains, like we do
# below. activate_custom_mounts() also depends on that any luks
# device already has been opened.
- if is_in_comma_sep_list luks ${PERSISTENCE_ENCRYPTION} && \
- is_luks_partition ${dev}
+ if is_in_comma_sep_list luks ${PERSISTENCE_ENCRYPTION} && is_luks_partition ${dev}
then
if luks_device=$(open_luks_device "${dev}")
then
# Probe for matching GPT partition names or filesystem labels
if is_in_comma_sep_list filesystem ${PERSISTENCE_STORAGE}
then
- result=$(probe_for_gpt_name "${overlays}" "${snapshots}" ${dev})
+ result=$(probe_for_gpt_name "${overlays}" ${dev})
if [ -n "${result}" ]
then
ret="${ret} ${result}"
continue
fi
- result=$(probe_for_fs_label "${overlays}" "${snapshots}" ${dev})
+ result=$(probe_for_fs_label "${overlays}" ${dev})
if [ -n "${result}" ]
then
ret="${ret} ${result}"
# Probe for files with matching name on mounted partition
if is_in_comma_sep_list file ${PERSISTENCE_STORAGE}
then
- result=$(probe_for_file_name "${overlays}" "${snapshots}" ${dev})
+ result=$(probe_for_file_name "${overlays}" ${dev})
if [ -n "${result}" ]
then
ret="${ret} ${result}"
fi
# Close luks device if it isn't used
- if [ -z "${result}" ] && [ -n "${luks_device}" ] && \
- is_active_luks_mapping "${luks_device}"
+ if [ -z "${result}" ] && [ -n "${luks_device}" ] && is_active_luks_mapping "${luks_device}"
then
/sbin/cryptsetup luksClose "${luks_device}"
fi
/sbin/cryptsetup status "${device}" 1>/dev/null 2>&1
}
-get_luks_backing_device () {
+get_luks_backing_device ()
+{
device=${1}
cryptsetup status ${device} 2> /dev/null | \
awk '{if ($1 == "device:") print $2}'
return
fi
- find "${src_dir}" -mindepth 1 -maxdepth 1 | while read src; do
+ find "${src_dir}" -mindepth 1 -maxdepth 1 | \
+ while read src
+ do
local dest="${dest_dir}$(basename "${src}")"
if [ -d "${src}" ]
then
local unionro1="${3}" # first underlying read-only branch (optional)
local unionro2="${4}" # second underlying read-only branch (optional)
- if [ "${UNIONTYPE}" = "aufs" ]
- then
- rw_opt="rw"
- ro_opt="rr+wh"
- noxino_opt="noxino"
- elif [ "${UNIONTYPE}" = "unionfs-fuse" ]
- then
- rw_opt="RW"
- ro_opt="RO"
- else
- rw_opt="rw"
- ro_opt="ro"
- fi
+ case "${UNIONTYPE}" in
+ aufs)
+ rw_opt="rw"
+ ro_opt="rr+wh"
+ noxino_opt="noxino"
+ ;;
+
+ unionfs-fuse)
+ rw_opt="RW"
+ ro_opt="RO"
+ ;;
+
+ *)
+ rw_opt="rw"
+ ro_opt="ro"
+ ;;
+ esac
case "${UNIONTYPE}" in
unionfs-fuse)