feat: Working on presentation, new tapes, more run scripts.
This commit is contained in:
72
bin/run
Executable file
72
bin/run
Executable file
@@ -0,0 +1,72 @@
|
||||
#!/bin/zsh
|
||||
# Primary helper script for generating output for 'tapes'.
|
||||
|
||||
######################### Options #########################
|
||||
|
||||
zparseopts -D -E -- \
|
||||
-who-dis-guy=whoami \
|
||||
-show-stats=showstats \
|
||||
-gimme-more-reasons=reasons \
|
||||
-show-history=showhistory \
|
||||
-show-me-the-chillers=showchillers \
|
||||
-ask-chat-gpt:=askgpt \
|
||||
-output:=outputFile
|
||||
|
||||
######################### Helpers #########################
|
||||
|
||||
function boxed_quote {
|
||||
gum style --foreground 212 --border double \
|
||||
--align center --margin "1 2" --padding "2 4" \
|
||||
"$1"
|
||||
}
|
||||
|
||||
function spinner {
|
||||
gum spin --title "$1" -- sleep "${2:-5}"
|
||||
}
|
||||
|
||||
function parseGpt {
|
||||
local json=$1
|
||||
local header=$2
|
||||
local content=$(cat "files/$json" | jq '.["choices"][0]["message"]["content"]')
|
||||
echo "$header\n$content" | gum format
|
||||
}
|
||||
|
||||
function askChatGpt {
|
||||
# note question needs to be json, this is generally prepared in the justfile.
|
||||
local question=$1
|
||||
local outputFile=$2
|
||||
if [ ! -f "$outputFile" ]; then
|
||||
# get ouptut from chat gpt, if file does not exists.
|
||||
# this saves from calling gpt over and over when recreating tapes.
|
||||
curl "https://api.openai.com/v1/chat/completions" \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "Authorization: Bearer ${OPENAI_API_KEY}" \
|
||||
-d "$question" \
|
||||
> "$outputFile"
|
||||
fi
|
||||
}
|
||||
|
||||
######################### MAIN #########################
|
||||
|
||||
if [ ! -z "$whoami" ]; then
|
||||
boxed_quote 'Great Question!!!'
|
||||
spinner "Googling..."
|
||||
elif [ ! -z "$showstats" ]; then
|
||||
spinner "Computing stats..."
|
||||
cat files/ShowStats.md | gum format
|
||||
elif [ ! -z "$reasons" ]; then
|
||||
spinner "Generating reasons..." 3
|
||||
echo "# More Reasons\n- Learn concepts / similarities\n- Pros vs. Cons\n" | gum format
|
||||
elif [ ! -z "$showhistory" ]; then
|
||||
content=$(cat files/history.json | jq '.["choices"][0]["message"]["content"]')
|
||||
echo "# Hydronic History\n$content" | gum format
|
||||
elif [ ! -z "$showchillers" ]; then
|
||||
content="$(parseGpt "chillers.json" "# Define Chillers")"
|
||||
echo $content > files/chillers.md
|
||||
gum pager < files/chillers.md
|
||||
elif [ ! -z "$askgpt" ]; then
|
||||
local question="${askgpt[-1]}"
|
||||
local file="${outputFile[-1]}"
|
||||
spinner "Asking ChatGPT..."
|
||||
askChatGpt $question $file
|
||||
fi
|
||||
Reference in New Issue
Block a user