/lib/functions.sh: move preinit related functions to /lib/functions/preinit.sh
Signed-off-by: Felix Fietkau <nbd@openwrt.org> SVN-Revision: 40404
This commit is contained in:
		| @@ -24,6 +24,7 @@ pi_init_path="/bin:/sbin:/usr/bin:/usr/sbin" | |||||||
| pi_init_cmd="/sbin/init" | pi_init_cmd="/sbin/init" | ||||||
|  |  | ||||||
| . /lib/functions.sh | . /lib/functions.sh | ||||||
|  | . /lib/functions/preinit.sh | ||||||
|  |  | ||||||
| boot_hook_init preinit_essential | boot_hook_init preinit_essential | ||||||
| boot_hook_init preinit_main | boot_hook_init preinit_main | ||||||
|   | |||||||
| @@ -446,89 +446,4 @@ user_exists() { | |||||||
| 	grep -qs "^${1}:" ${IPKG_INSTROOT}/etc/passwd | 	grep -qs "^${1}:" ${IPKG_INSTROOT}/etc/passwd | ||||||
| } | } | ||||||
|  |  | ||||||
|  |  | ||||||
| boot_hook_splice_start() { |  | ||||||
| 	export -n PI_HOOK_SPLICE=1 |  | ||||||
| } |  | ||||||
|  |  | ||||||
| boot_hook_splice_finish() { |  | ||||||
| 	local hook |  | ||||||
| 	for hook in $PI_STACK_LIST; do |  | ||||||
| 		local v; eval "v=\${${hook}_splice:+\$${hook}_splice }$hook" |  | ||||||
| 		export -n "${hook}=${v% }" |  | ||||||
| 		export -n "${hook}_splice=" |  | ||||||
| 	done |  | ||||||
| 	export -n PI_HOOK_SPLICE= |  | ||||||
| } |  | ||||||
|  |  | ||||||
| boot_hook_init() { |  | ||||||
| 	local hook="${1}_hook" |  | ||||||
| 	export -n "PI_STACK_LIST=${PI_STACK_LIST:+$PI_STACK_LIST }$hook" |  | ||||||
| 	export -n "$hook=" |  | ||||||
| } |  | ||||||
|  |  | ||||||
| boot_hook_add() { |  | ||||||
| 	local hook="${1}_hook${PI_HOOK_SPLICE:+_splice}" |  | ||||||
| 	local func="${2}" |  | ||||||
|  |  | ||||||
| 	[ -n "$func" ] && { |  | ||||||
| 		local v; eval "v=\$$hook" |  | ||||||
| 		export -n "$hook=${v:+$v }$func" |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
|  |  | ||||||
| boot_hook_shift() { |  | ||||||
| 	local hook="${1}_hook" |  | ||||||
| 	local rvar="${2}" |  | ||||||
|  |  | ||||||
| 	local v; eval "v=\$$hook" |  | ||||||
| 	[ -n "$v" ] && { |  | ||||||
| 		local first="${v%% *}" |  | ||||||
|  |  | ||||||
| 		[ "$v" != "${v#* }" ] && \ |  | ||||||
| 			export -n "$hook=${v#* }" || \ |  | ||||||
| 			export -n "$hook=" |  | ||||||
|  |  | ||||||
| 		export -n "$rvar=$first" |  | ||||||
| 		return 0 |  | ||||||
| 	} |  | ||||||
|  |  | ||||||
| 	return 1 |  | ||||||
| } |  | ||||||
|  |  | ||||||
| boot_run_hook() { |  | ||||||
| 	local hook="$1" |  | ||||||
| 	local func |  | ||||||
|  |  | ||||||
| 	while boot_hook_shift "$hook" func; do |  | ||||||
| 		local ran; eval "ran=\$PI_RAN_$func" |  | ||||||
| 		[ -n "$ran" ] || { |  | ||||||
| 			export -n "PI_RAN_$func=1" |  | ||||||
| 			$func "$1" "$2" |  | ||||||
| 		} |  | ||||||
| 	done |  | ||||||
| } |  | ||||||
|  |  | ||||||
| pivot() { # <new_root> <old_root> |  | ||||||
| 	/bin/mount -o noatime,move /proc $1/proc && \ |  | ||||||
| 	pivot_root $1 $1$2 && { |  | ||||||
| 		/bin/mount -o noatime,move $2/dev /dev |  | ||||||
| 		/bin/mount -o noatime,move $2/tmp /tmp |  | ||||||
| 		/bin/mount -o noatime,move $2/sys /sys 2>&- |  | ||||||
| 		/bin/mount -o noatime,move $2/overlay /overlay 2>&- |  | ||||||
| 		return 0 |  | ||||||
| 	} |  | ||||||
| } |  | ||||||
|  |  | ||||||
| fopivot() { # <rw_root> <ro_root> <dupe?> |  | ||||||
| 	/bin/mount -o noatime,lowerdir=/,upperdir=$1 -t overlayfs "overlayfs:$1" /mnt |  | ||||||
| 	pivot /mnt $2 |  | ||||||
| } |  | ||||||
|  |  | ||||||
| ramoverlay() { |  | ||||||
| 	mkdir -p /tmp/root |  | ||||||
| 	/bin/mount -t tmpfs -o noatime,mode=0755 root /tmp/root |  | ||||||
| 	fopivot /tmp/root /rom 1 |  | ||||||
| } |  | ||||||
|  |  | ||||||
| [ -z "$IPKG_INSTROOT" -a -f /lib/config/uci.sh ] && . /lib/config/uci.sh | [ -z "$IPKG_INSTROOT" -a -f /lib/config/uci.sh ] && . /lib/config/uci.sh | ||||||
|   | |||||||
							
								
								
									
										87
									
								
								package/base-files/files/lib/functions/preinit.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										87
									
								
								package/base-files/files/lib/functions/preinit.sh
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,87 @@ | |||||||
|  | #!/bin/sh | ||||||
|  | # Copyright (C) 2006-2013 OpenWrt.org | ||||||
|  | # Copyright (C) 2010 Vertical Communications | ||||||
|  |  | ||||||
|  | boot_hook_splice_start() { | ||||||
|  | 	export -n PI_HOOK_SPLICE=1 | ||||||
|  | } | ||||||
|  |  | ||||||
|  | boot_hook_splice_finish() { | ||||||
|  | 	local hook | ||||||
|  | 	for hook in $PI_STACK_LIST; do | ||||||
|  | 		local v; eval "v=\${${hook}_splice:+\$${hook}_splice }$hook" | ||||||
|  | 		export -n "${hook}=${v% }" | ||||||
|  | 		export -n "${hook}_splice=" | ||||||
|  | 	done | ||||||
|  | 	export -n PI_HOOK_SPLICE= | ||||||
|  | } | ||||||
|  |  | ||||||
|  | boot_hook_init() { | ||||||
|  | 	local hook="${1}_hook" | ||||||
|  | 	export -n "PI_STACK_LIST=${PI_STACK_LIST:+$PI_STACK_LIST }$hook" | ||||||
|  | 	export -n "$hook=" | ||||||
|  | } | ||||||
|  |  | ||||||
|  | boot_hook_add() { | ||||||
|  | 	local hook="${1}_hook${PI_HOOK_SPLICE:+_splice}" | ||||||
|  | 	local func="${2}" | ||||||
|  |  | ||||||
|  | 	[ -n "$func" ] && { | ||||||
|  | 		local v; eval "v=\$$hook" | ||||||
|  | 		export -n "$hook=${v:+$v }$func" | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  |  | ||||||
|  | boot_hook_shift() { | ||||||
|  | 	local hook="${1}_hook" | ||||||
|  | 	local rvar="${2}" | ||||||
|  |  | ||||||
|  | 	local v; eval "v=\$$hook" | ||||||
|  | 	[ -n "$v" ] && { | ||||||
|  | 		local first="${v%% *}" | ||||||
|  |  | ||||||
|  | 		[ "$v" != "${v#* }" ] && \ | ||||||
|  | 			export -n "$hook=${v#* }" || \ | ||||||
|  | 			export -n "$hook=" | ||||||
|  |  | ||||||
|  | 		export -n "$rvar=$first" | ||||||
|  | 		return 0 | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	return 1 | ||||||
|  | } | ||||||
|  |  | ||||||
|  | boot_run_hook() { | ||||||
|  | 	local hook="$1" | ||||||
|  | 	local func | ||||||
|  |  | ||||||
|  | 	while boot_hook_shift "$hook" func; do | ||||||
|  | 		local ran; eval "ran=\$PI_RAN_$func" | ||||||
|  | 		[ -n "$ran" ] || { | ||||||
|  | 			export -n "PI_RAN_$func=1" | ||||||
|  | 			$func "$1" "$2" | ||||||
|  | 		} | ||||||
|  | 	done | ||||||
|  | } | ||||||
|  |  | ||||||
|  | pivot() { # <new_root> <old_root> | ||||||
|  | 	/bin/mount -o noatime,move /proc $1/proc && \ | ||||||
|  | 	pivot_root $1 $1$2 && { | ||||||
|  | 		/bin/mount -o noatime,move $2/dev /dev | ||||||
|  | 		/bin/mount -o noatime,move $2/tmp /tmp | ||||||
|  | 		/bin/mount -o noatime,move $2/sys /sys 2>&- | ||||||
|  | 		/bin/mount -o noatime,move $2/overlay /overlay 2>&- | ||||||
|  | 		return 0 | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  |  | ||||||
|  | fopivot() { # <rw_root> <ro_root> <dupe?> | ||||||
|  | 	/bin/mount -o noatime,lowerdir=/,upperdir=$1 -t overlayfs "overlayfs:$1" /mnt | ||||||
|  | 	pivot /mnt $2 | ||||||
|  | } | ||||||
|  |  | ||||||
|  | ramoverlay() { | ||||||
|  | 	mkdir -p /tmp/root | ||||||
|  | 	/bin/mount -t tmpfs -o noatime,mode=0755 root /tmp/root | ||||||
|  | 	fopivot /tmp/root /rom 1 | ||||||
|  | } | ||||||
		Reference in New Issue
	
	Block a user
	 Felix Fietkau
					Felix Fietkau