aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristos.K <freedomrfox@gmail.com>2017-07-20 15:06:16 +0300
committerChristos.K <freedomrfox@gmail.com>2017-07-20 15:06:16 +0300
commit5ff5e4b3502f9777b68b64593f042f78f21e6c3f (patch)
tree5d63c035a3c95433046a279a3e82a69bc1df64d5 /scripts
parentHook changes, semi finished (diff)
downloadGSE-5ff5e4b3502f9777b68b64593f042f78f21e6c3f.tar.gz
GSE-5ff5e4b3502f9777b68b64593f042f78f21e6c3f.tar.bz2
GSE-5ff5e4b3502f9777b68b64593f042f78f21e6c3f.zip
Fixed custom hook option
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/functions/sinit_functions54
1 files changed, 39 insertions, 15 deletions
diff --git a/scripts/functions/sinit_functions b/scripts/functions/sinit_functions
index f4574ec..4fa7258 100755
--- a/scripts/functions/sinit_functions
+++ b/scripts/functions/sinit_functions
@@ -936,7 +936,6 @@ _controller_args() {
if [[ "${1#*=}" == '' ]]; then
die "No arguments after hook were given"
else
- echo hi
if [[ "$2" != '-hp'* ]]; then
die "No hook points {-hp=...} were given"
else
@@ -959,10 +958,10 @@ _controller_args() {
_flag_dhook_entries="${1#*=}"
export _flag_dhook_entries
- _flag_dhook_hp="${1#*=}"
+ _flag_dhook_hp="${2#*=}"
export _flag_dhook_hp
- _flag_dhook_prio="${1#*=}"
+ _flag_dhook_prio="${3#*=}"
export _flag_dhook_prio
_dhook_ar=()
@@ -991,27 +990,52 @@ _controller_args() {
fi
done
+ _case_hp() {
+ case "$1" in
+ 'cmdline'|'pre-udev'|'pre-trigger'|'initqueue'|'initqueue/settled'|'initqueue/timeout'|'initqueue/finished'\
+ |'pre-mount'|'mount'|'pre-pivot'|'cleanup')
+ return 0;;
+ *)
+ return 1;;
+ esac
+ }
+
for i in ${_flag_dhook_hp}; do
- _dhook_hp+=("${i}")
+ if _case_hp "$i"; then
+ _dhook_hp+=("${i}")
+ else
+ die "There is no such a hook-point: $i"
+ fi
done
for i in ${_flag_dhook_prio}; do
- _dhook_prio+=("${i}")
+ if [[ "$i" =~ ^[0-9]+$ ]]; then
+ _dhook_prio+=("${i}")
+ else
+ die "Priority $i is not a integer"
+ fi
done
+
+ _hook_final=()
+ _var_count="$((${#_dhook_ar} - 1))"
+ for i in $(eval echo "{0..${_var_count}}"); do
+ _hook_final+=("${_dhook_prio[$i]}","${_dhook_hp[$i]}","${_dhook_ar[$i]}")
+ done
+
+ _e_report_back "Dracut hook flag has been enabled with hooks: "
+ _o_report_back "${_hook_final[@]}"
+ shift 2
+ unset _var_count
+ unset _dhook_ar
+ unset _dhook_prio
+ unset _dhook_hp
+ unset _flag_dhook_hp
+ unset _flag_dhook_prio
+ unset _flag_dhook_entries
fi
elif [[ "$1" != *'='* ]]; then
die "No arguments after hook were given"
fi
-
- if [[ "$2" == *'-hookp'* ]]; then
- # if [[ "$1" == *'='* ]]; then
- :
- # fi
- fi
-
- _e_report_back "Dracut hook flag has been enabled with hooks: "
- _o_report_back "${_flag_dhook_entries}"
- shift 2
;;
--net* )