Advertisement
Guest User

Untitled

a guest
Sep 24th, 2016
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.83 KB | None | 0 0
  1. # FIND MODULE - V0.1
  2.  
  3. # CONSTANTS
  4. DATABASE=$1
  5. MAX_LEN="12"
  6.  
  7. # onDEPLOY
  8. if [[ "$DATABASE" == "module_find_deploy" ]]; then
  9.     echo "find_deployed" > ./response.txt
  10.     exit 0
  11. fi
  12.  
  13. # Ask for query
  14. echo "Enter your search query."
  15. echo "Example: <column1=\"query1\"> [column2=\"query2\"]"
  16. echo -n "[INPUT]: "
  17. read query
  18.  
  19. # Get sub-queries
  20. TRIM_QUERY="$(echo "${query}" | sed -e 's/\" /\"|/g')"
  21.  
  22. # Get query array  
  23. IFS="|" read -ra query_array <<< "$TRIM_QUERY"
  24.  
  25. # Now let's get all columns names and pack them to array
  26. read COLS < $DATABASE
  27. TRIM_COLS="$(echo "${COLS}" | sed -e 's/ | /|/g')"
  28.  
  29. #echo $TRIM_COLS
  30. OIFS=$IFS;
  31. IFS="|";
  32. array=($TRIM_COLS)
  33. IFS='|' read -ra array <<< "$TRIM_COLS"
  34.  
  35. # Find needle column
  36. doubles=0
  37. for sub in "${!query_array[@]}"
  38. do
  39.     IFS='=' read -ra query_params <<< "${query_array[sub]}"
  40.     QP=`echo "${query_params[0]}" | tr '[A-Z]' '[a-z]'`
  41.  
  42.     for field in "${!array[@]}"
  43.     do
  44.         colLow=`echo "${array[field]}" | tr '[A-Z]' '[a-z]'`
  45.         if [ "$QP" == "$colLow" ]
  46.         then
  47.             pr_string=`echo "${query_params[1]}" | tr '[A-Z]' '[a-z]'`
  48.             size=${#pr_string}
  49.             if [ "${NEEDLS[$field]}" != "" ]
  50.             then
  51.                 #echo "Already exists";
  52.                 NEEDLS[$field]="${NEEDLS[$field]}&${pr_string:1:$size-2}"
  53.                 #echo "New field = "${NEEDLS[$field]}
  54.                 doubles=$(($doubles+1))
  55.             else
  56.                 NEEDLS[$field]=${pr_string:1:$size-2}
  57.             fi          
  58.         fi
  59.     done
  60. done
  61.  
  62. # SURPRISE ERROR!!
  63. NEED_CNT=$((${#NEEDLS[@]}+doubles))
  64. if [ $NEED_CNT -ne ${#query_array[@]} ]
  65. then
  66.     echo "ERROR! Invalid query: WRONG_COLUMN_NAME"
  67.     exit 1
  68. fi
  69. #for q in "${!NEEDLS[@]}"
  70. #do
  71. #echo "[$q]:${NEEDLS[q]}"
  72. #done
  73.  
  74. if [ ${#NEEDLS[@]} -ne 0 ]
  75. then
  76.     RESULT_COUNT=0
  77.     while IFS='' read -r line || [ -n "$line" ]; do
  78.  
  79.         # Get one line from file
  80.  
  81.         TRIM_LINE="$(echo "${line}" | sed -e 's/ | /|/g')"
  82.         OIFS=$IFS;
  83.         IFS="|";
  84.         line_array=($TRIM_LINE)
  85.        
  86.         # Trying to find needls
  87.  
  88.         PRINTED=0
  89.         for n in "${!NEEDLS[@]}"
  90.         do
  91.             if [ $PRINTED -eq 1 ]
  92.             then
  93.                 break;
  94.             fi
  95.  
  96.             lowLine=`echo "${line_array[$n]}" | tr '[A-Z]' '[a-z]'`
  97.             IFS="&";
  98.             needls_arr=(${NEEDLS[n]})
  99.  
  100.             for narr in "${!needls_arr[@]}"
  101.             do
  102.                 if [ "$lowLine" == "${needls_arr[narr]}" ]
  103.                 then
  104.                     for ((i=0;i<${#line_array[@]};i++))
  105.                     do
  106.                         #printf " %${MAX_LEN}s |" "$(echo "${line_array[$i]}" | sed -e 's/[[:space:]]//g')"
  107.                         printf " %${MAX_LEN}s |" "$(echo "${line_array[$i]}")"
  108.                     done
  109.                     printf "\n"
  110.                     RESULT_COUNT=$(($RESULT_COUNT+1))
  111.                     PRINTED=1
  112.                     break;
  113.                 fi
  114.             done
  115.         done
  116.     done < $DATABASE
  117.  
  118.     if [ "$RESULT_COUNT" -eq 0 ]
  119.     then
  120.         echo "[INFO]: Can't find anything.. Make another query."
  121.     else
  122.         echo "[INFO]: Rows founded = $RESULT_COUNT"
  123.     fi
  124. else
  125.     echo "[ERROR]: No such column in this database... :("
  126. fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement