#!/usr/bin/bash

IFS=$'\n'
entrynames=( $(cat 'scripts/cache/entrynames.txt' | fzf --filter="$1" | head -n 10) )
entries=( $(cat 'scripts/cache/entries.txt') )

definitelyNotMath() {
  if [[ ${1:0:1} != "0" \
  && ${1:0:1} != "1" \
  && ${1:0:1} != "2" \
  && ${1:0:1} != "3" \
  && ${1:0:1} != "4" \
  && ${1:0:1} != "5" \
  && ${1:0:1} != "6" \
  && ${1:0:1} != "7" \
  && ${1:0:1} != "8" \
  && ${1:0:1} != "9" ]]; then
    echo 'true'
  else
    echo 'false'
  fi
}

if [[ "$1" == ">"* ]]; then
  cd ~/.config/eww 
  if [[ "$1" == ">load"* ]]; then
    searching=$(echo "$1" | sed 's/>load //g'  | sed 's/>load//g')
    profilenames=( $(ls css/savedcolors/ | grep .txt | sed 's/_iconcolor_//g' | sed 's/.txt//g' | fzf --filter="$searching") )
    echo -n '['
    for x in "${!profilenames[@]}"; do
      if [ "$x" != "0" ]; then
        printf ','
      fi
      echo -n '{"name": "'"${profilenames[x]}"'", "exec": ">load '"${profilenames[x]}"'"}'
    done
    echo -n ']'
  else
    echo '[]'
  fi
  exit 0
fi

if [[ "${!entrynames[@]}" == "" && $(definitelyNotMath "$1") == "false" ]]; then
  mathAns=$(qalc $1 | head -n 1)
  mathAns="${mathAns#*= }"
  mathAns="${mathAns#*≈ }"
  if [[ "$mathAns" == *"error"* ]]; then
    echo '[]'
    exit 0
  else
    echo '[{"name": "'"$mathAns"'", "exec": "wl-copy \"'"$mathAns"'\""}]'
  fi
  exit 0
fi

printf '['

for x in "${!entrynames[@]}"; do
  if [ "$x" != "0" ]; then
    printf ','
  fi
  echo -n $(echo $entries | gojq -c '."'"${entrynames[x]}"'"')
done

printf ']'