summaryrefslogtreecommitdiffstats
path: root/src/search.sh
blob: 1c2be4b9907059287bee8fa17295d6e1b446f2a1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#!/usr/bin/env bash

search::cheat() {
   local readonly cmd="$(echo "$1" | str::first_word)"

   echo "% ${cmd}, cheatsh"
   echo
   curl -s "${CHTSH_URL:-http://cht.sh}/${cmd}?T"
}

search::filename() {
   local readonly cmd="$(echo "$1" | str::first_word)"

   echo "${cmd}_cheatsh" \
      | head -n1 \
      | awk '{print $NF}' \
      | xargs \
      | tr ' ' '_'
}

search::full_path() {
   local readonly cmd="$(echo "$1" | str::first_word)"

   echo "/tmp/navi/$(search::filename "$cmd").cheat"
}

search::save() {
   local readonly cmd="$(echo "$1" | str::first_word)"

   local readonly filepath="$(search::full_path "$cmd")"
   local readonly filedir="$(dirname "$filepath")"
   
   if [ -f "$filepath" ]; then
      return
   fi

   mkdir -p "$filedir" &> /dev/null || true
   search::cheat "$cmd" > "$filepath"
}