summaryrefslogtreecommitdiff
path: root/recipes/unionfs/unionroot_0.1.1.bb
blob: 4047c2f3c73bbf9ed8c1eaf7d6ddba8a4db27b4f (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
LICENSE = "GPL"

DESCRIPTION = "Provides an init script that changes the root file-system to unionfs."
DEPENDS = "busybox base-files"
RDEPENDS = "busybox base-files"
SECTION = "base"
PRIORITY = "optional"

SRC_URI = "file://init.unionroot"

inherit update-alternatives

ALTERNATIVE_NAME = "init"
ALTERNATIVE_LINK = "/sbin/init"
ALTERNATIVE_PATH = "/sbin/init.unionroot"
ALTERNATIVE_PRIORITY = "100"

do_install () {
        install -d ${D}${base_sbindir}
        install -m 0755 ${WORKDIR}/init.unionroot ${D}${base_sbindir}/
}

pkg_postinst () {
	# Alter /etc/fstab
	mv $D/${sysconfdir}/fstab $D/${sysconfdir}/fstab.old
	awk 'BEGIN { print "# Altered by unionroot" }
		   { if ( $2 == "/" )
		     {
		     	print $1 "\t/media/realroot\t" $3 "\t" $4 "\t" $5 "\t" $6
		     }
		     else
		     {
		     	print $0
		     }
		   }' $D/${sysconfdir}/fstab.old > $D/${sysconfdir}/fstab
}