summaryrefslogtreecommitdiffstats
path: root/package/base-files/files/lib/firstboot/10_determine_parts
blob: 3f56e32a89c958dd29e974c7803249ff3fefa914 (plain)
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
45
46
#!/bin/sh

set_mtd_part() {
    partname="rootfs_data"
    mtdpart="$(find_mtd_part $partname)"
}

set_rom_part() {
    rom=$(awk '/squashfs/ {print $2}' /proc/mounts)
}

set_jffs_part() {
    jffs=$(awk '/jffs2/ {print $2}' /proc/mounts)
}

determine_mtd_part() {
    set_mtd_part
    if [ -z "$mtdpart" ]; then
	echo "MTD partition not found."
	exit 1
    fi
}

determine_rom_part() {
    check_skip || {
	set_rom_part
	if [ -z "$rom" ]; then
	    echo "You do not have a squashfs partition; aborting"
	    echo "(firstboot cannot be run on jffs2 based firmwares)"
	    exit 1
	fi
    }
}

determine_jffs2_part() {
    check_skip || {
	set_jffs_part
    }
}

boot_hook_add switch2jffs determine_mtd_part
boot_hook_add jffs2reset determine_mtd_part
boot_hook_add switch2jffs determine_rom_part
boot_hook_add jffs2reset determine_rom_part
boot_hook_add switch2jffs determine_jffs2_part
boot_hook_add jffs2reset determine_jffs2_part