# colorful messages
[ -z "$SETCOLOR_SUCCESS" ] && SETCOLOR_SUCCESS="echo -en \\033[1;32m"
[ -z "$SETCOLOR_FAILURE" ] && SETCOLOR_FAILURE="echo -en \\033[1;31m"
[ -z "$SETCOLOR_WARNING" ] && SETCOLOR_WARNING="echo -en \\033[1;33m"
[ -z "$SETCOLOR_NORMAL"  ] && SETCOLOR_NORMAL="echo -en \\033[0;39m"

# Turn on color flag
BOOTUP="color"

#
parse_cmdline_option() {
  # The reason we have this function is some boot parameter is like xxx="-k -x", therefore we can not just use 
  # case $param in
  # xxx=*) ...
  # method, since it won't catch the right xxx. It will just catch xxx="-k.
  local param_="$1"
  local parse_tmp="$(mktemp /tmp/cmdtmp.XXXXXX)"
  for ik in $param_; do
    # the parameter maybe like: xxx=xyz, xxx="xyz", xxx="-k -x"
    if LANG=C grep -Eq "$ik=\"" /proc/cmdline; then
      # This is for case xxx="-k -x" or xxx="xyz", it allows spaces between " "
      #LANG=C grep -oE "$ik=\"[ 0-9a-zA-Z_-\.\/]*\"([[:space:]]|$)+" /proc/cmdline > $parse_tmp
      LANG=C grep -oE "$ik=\"([[:space:]]|[[:alnum:]]|_|-|\.|\/)*\"([[:space:]]|$)+" /proc/cmdline > $parse_tmp
    else
      # This is for case xxx=xyz, no space in its assignment
      #LANG=C grep -oE "$ik=[0-9a-zA-Z_-\.\/]*([[:space:]]|$)+" /proc/cmdline > $parse_tmp
      LANG=C grep -oE "$ik=([[:alnum:]]|_|-|\.|\/)*([[:space:]]|$)+" /proc/cmdline > $parse_tmp
    fi
    # now we can get the variables
    . $parse_tmp
  done
  [ -f "$parse_tmp" ] && rm -f $parse_tmp
} # parse_cmdline_option
#
get_gui_dialog() {
  if type gdialog &>/dev/null; then
    DIALOG=gdialog
  elif type Xdialog &>/dev/null; then
    DIALOG=Xdialog
  else
    echo "No gdialog or Xdialog was found!"
    echo "Program terminated!!!"
    exit 1
  fi
} # end of get_gui_dialog
