restore support for old persistence media
authorEvgeni Golov <evgeni@grml.org>
Fri, 26 Jun 2015 13:06:37 +0000 (15:06 +0200)
committerEvgeni Golov <evgeni@grml.org>
Fri, 26 Jun 2015 13:06:37 +0000 (15:06 +0200)
components/9990-aaa-fixme.sh
components/9990-misc-helpers.sh
components/9990-overlay.sh

index c6b7082..d1181e6 100755 (executable)
@@ -26,5 +26,8 @@ then
        export PATH
 fi
 
+old_root_overlay_label="live-rw"
+old_home_overlay_label="home-rw"
 custom_overlay_label="persistence"
+old_custom_overlay_label="custom-ov"
 persistence_list="persistence.conf"
index 6f7b599..90aa6c7 100755 (executable)
@@ -1646,6 +1646,32 @@ activate_custom_mounts ()
        echo ${used_devices}
 }
 
+fix_backwards_compatibility ()
+{
+       local device dir opt backing include_list
+       device=${1}
+       dir=${2}
+       opt=${3}
+
+       if [ -n "${PERSISTENCE_READONLY}" ]
+       then
+               return
+       fi
+
+       backing="$(mount_persistence_media ${device})"
+       if [ -z "${backing}" ]
+       then
+               return
+       fi
+
+       include_list="${backing}/${persistence_list}"
+       if [ ! -r "${include_list}" ] && [ ! -r "${backing}/${old_persistence_list}" ]
+       then
+               echo "# persistence backwards compatibility:
+${dir} ${opt},source=." > "${include_list}"
+       fi
+}
+
 is_mountpoint ()
 {
        directory="$1"
index a64c78b..77000d1 100755 (executable)
@@ -190,7 +190,7 @@ setup_unionfs ()
 
                if is_in_comma_sep_list overlay ${PERSISTENCE_METHOD}
                then
-                       overlays="${custom_overlay_label}"
+                       overlays="${old_root_overlay_label} ${old_home_overlay_label} ${custom_overlay_label} ${old_custom_overlay_label}"
                fi
 
                local overlay_devices
@@ -202,10 +202,27 @@ setup_unionfs ()
                                media="$(echo ${media} | tr ":" " ")"
 
                                case ${media} in
+                                       ${old_root_overlay_label}=*)
+                                               device="${media#*=}"
+                                               fix_backwards_compatibility ${device} / union
+                                               overlay_devices="${overlay_devices} ${device}"
+                                               ;;
+
+                                       ${old_home_overlay_label}=*)
+                                               device="${media#*=}"
+                                               fix_backwards_compatibility ${device} /home bind
+                                               overlay_devices="${overlay_devices} ${device}"
+                                               ;;
+
                                        ${custom_overlay_label}=*)
                                                device="${media#*=}"
                                                overlay_devices="${overlay_devices} ${device}"
                                                ;;
+
+                                       ${old_custom_overlay_label}=*)
+                                               device="${media#*=}"
+                                               overlay_devices="${overlay_devices} ${device}"
+                                               ;;
                                 esac
                        done
                fi