summaryrefslogtreecommitdiffstats
path: root/rules/post/mk-devnodes.make
blob: a6b7c5108f40ab258c0f87839aff72b5bc0d4eda (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
# -*-makefile-*-

PTX_FIXPERM_SCRIPT := $(STATEDIR)/ptxdist-fixperm.sh
PTX_FIXPERM_RUN    := $(STATEDIR)/ptxdist-fixperm.done

ifdef PTXCONF_MKDEVNODES
world: $(PTX_FIXPERM_RUN)
endif

$(PTX_FIXPERM_RUN): $(PTX_FIXPERM_SCRIPT)
	@echo;									\
	echo "creating devnodes, for the smooth nfsroot feeling";		\
	echo;									\
	read -t 5 -p "(press enter to let sudo to that job)";			\
	if test $$? -eq 0; then							\
		for dir in "$(ROOTDIR)" "$(ROOTDIR_DEBUG)"; do			\
			pushd "$$dir" > /dev/null;				\
			sudo /bin/bash -x "$<";					\
			popd > /dev/null;					\
		done;								\
	else									\
		echo;								\
		echo "watch out for missing initial consoles...";		\
		echo;								\
	fi


$(PTX_FIXPERM_SCRIPT): world_packages
	@echo "#/bin/bash" > "$@"
	@chmod +x "$@"

	@IFS=":";								\
	(									\
	egrep "^n:" -h $(STATEDIR)/*.perms | 					\
		while read n node uid gid perm type major minor; do		\
		node="$${node#/}";						\
		echo "if test -e $$node; then rm -rf $$node; fi";		\
		echo "mknod $$node $$type $$major $$minor";			\
		echo "chown $$uid:$$gid $$node";				\
		echo "chmod $$perm $$node";					\
	done;									\
	) >> "$@"

# vim: syntax=make