#!/usr/bin/env bash

# shellcheck shell=bash

# ``````````````````````````````````````````````````````````````````````````````
# Function name: init_search()
#
# Description:
#   Init search module.
#
# Usage:
#   init_search
#
# Examples:
#   init_search
#

function init_search() {

  # shellcheck disable=SC2034
  local _FUNCTION_ID="init_search"
  local _STATE=0

  local _spattern="$1"
  # shellcheck disable=SC2034
  local _search_stack=()

  _cr="-35.35"

  # shellcheck disable=SC2034,SC2154
  _static_menu="${_tmp}/.static.menu"

  : >"${_static_menu}"

  printf "\\n    \\e[1;38m%-25.25s %${_cr}s %s\\e[m\\n    %-25.25s %${_cr}s %s\\n\\n" \
         "Module" \
         "Alias" \
         "Nmap Parameters" \
         "------" \
         "-----" \
         "---------------" >> "${_static_menu}"

  # shellcheck disable=SC2154
  for _svar in "${_profiles_list[@]}" ; do

    # shellcheck disable=SC2034
    _key_alias=$(echo "$_svar" | awk -v FS="(;|;)" '{print $1}')
    # shellcheck disable=SC2034
    _key_cmd=$(echo "$_svar" | awk -v FS="(;|;)" '{print $2}')
    # shellcheck disable=SC2034
    _key_mod=$(echo "$_svar" | awk -v FS="(;|;)" '{print $3}')

    if [[ "$_key_alias" == *"$_spattern"* ]] ; then

      _search_stack+=("${_key_mod};${_key_alias};${_key_cmd}")

      printf "    \\e[1;36m%-25.25s\\e[m \\e[1;34m%${_cr}s\\e[m %s\\n" \
             "$_key_mod" \
             "$_key_alias" \
             "$_key_cmd" >> "${_static_menu}"

    elif [[ "$_key_cmd" == *"$_spattern"* ]] ; then

      _search_stack+=("${_key_mod};${_key_alias};${_key_cmd}")

      printf "    \\e[1;36m%-25.25s\\e[m \\e[1;34m%${_cr}s\\e[m %s\\n" \
             "$_key_mod" \
             "$_key_alias" \
             "$_key_cmd" >> "${_static_menu}"
    fi

  done

  unset _svar

  cat "${_static_menu}"

  echo

  : >"${_static_menu}"

  return $_STATE

}
