---
 debian/changelog |  7 +++++++
 fstab.d/efi      | 37 +++++++++++++++++++++++++++++++++----
 2 files changed, 40 insertions(+), 4 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index 61b84aa..003cc3e 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+partman-efi (72) UNRELEASED; urgency=medium
+
+  [ Shih-Yuan Lee (FourDollars) ]
+  * Follow partman-auto/disk to reuse the ESP. Closes: #803912
+
+ -- Shih-Yuan Lee (FourDollars) <fourdoll...@gmail.com>  Tue, 03 Nov 2015 
14:00:26 +0800
+
 partman-efi (71) unstable; urgency=medium
 
   [ Updated translations ]
diff --git a/fstab.d/efi b/fstab.d/efi
index 14b6696..9906f24 100755
--- a/fstab.d/efi
+++ b/fstab.d/efi
@@ -12,19 +12,48 @@ case $ARCH in
        ;;
 esac
 
-seen_efi=
+paths=
 for dev in $DEVICES/*; do
        [ -d $dev ] || continue
        cd $dev
        open_dialog PARTITIONS
        while { read_line num id size type fs path name; [ "$id" ]; }; do
-               [ -z "$seen_efi" ] || continue
                [ $fs != free ] || continue
                [ -f "$id/method" ] || continue
                method=$(cat $id/method)
                [ "$method" = efi ] || continue
-               echo "$path" /boot/efi vfat umask=0077 0 1
-               seen_efi=1
+               if [ -z "$paths" ]; then
+                       paths="$path"
+               else
+                       paths="$paths $path"
+               fi
        done
        close_dialog
 done
+
+if [ -z "$paths" ]; then
+       exit 0
+fi
+
+# Use any autopartition disk that has been set
+if db_get partman-auto/disk && [ "$RET" ]; then
+       disks="$RET"
+       seen_efi=
+       for disk in $disks; do
+               for path in $paths; do
+                       case "$path" in
+                               $disk*)
+                                       echo "$path" /boot/efi vfat umask=0077 
0 1
+                                       seen_efi=1
+                                       break
+                                       ;;
+                       esac
+               done
+               [ -z "$seen_efi" ] || break
+       done
+else
+       for path in $paths; do
+               echo "$path" /boot/efi vfat umask=0077 0 1
+               break
+       done
+fi
-- 
1.9.1

Reply via email to