File: duplicate_labels

package info (click to toggle)
partman-target 82
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 1,128 kB
  • sloc: sh: 549; makefile: 16
file content (44 lines) | stat: -rwxr-xr-x 979 bytes parent folder | download | duplicates (8)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#! /bin/sh

. /lib/partman/lib/base.sh

for dev in $DEVICES/*; do
	[ -d "$dev" ] || continue
	cd $dev
	partitions=
	open_dialog PARTITIONS
	while { read_line num id size type fs path name; [ "$id" ]; }; do
		[ "$fs" != free ] || continue
		[ -s "$id/label" ] || continue
		partitions="${partitions:+$partitions
}$(cat "$id/label") $path"
	done
	close_dialog
	partitions="$(echo "$partitions" | sort)"

	oldlabel=
	oldpath=
	IFS="$NL"
	for partition in $partitions; do
		restore_ifs
		label="${partition% *}"
		path="${partition##* }"
		if [ "$label" = "$oldlabel" ]; then
			db_subst partman-target/same_label PART1 "$(humandev "$oldpath")"
			db_subst partman-target/same_label PART2 "$(humandev "$path")"
			db_subst partman-target/same_label LABEL "$label"
			db_capb align
			db_input critical partman-target/same_label || true
			db_go || true
			db_capb backup align
			exit 1
		else
			oldlabel="$label"
			oldpath="$path"
		fi
		IFS="$NL"
	done
	restore_ifs
done

exit 0