diff options
author | Christos.K <freedomrfox@gmail.com> | 2017-07-20 15:06:16 +0300 |
---|---|---|
committer | Christos.K <freedomrfox@gmail.com> | 2017-07-20 15:06:16 +0300 |
commit | 5ff5e4b3502f9777b68b64593f042f78f21e6c3f (patch) | |
tree | 5d63c035a3c95433046a279a3e82a69bc1df64d5 /scripts | |
parent | Hook changes, semi finished (diff) | |
download | GSE-5ff5e4b3502f9777b68b64593f042f78f21e6c3f.tar.gz GSE-5ff5e4b3502f9777b68b64593f042f78f21e6c3f.tar.bz2 GSE-5ff5e4b3502f9777b68b64593f042f78f21e6c3f.zip |
Fixed custom hook option
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/functions/sinit_functions | 54 |
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* ) |