93 lines
2.3 KiB
Bash
Executable File
93 lines
2.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
#
|
|
# try.sh - demonstrate 2024/cable1
|
|
|
|
# make sure CC is set so that when we do make CC="$CC" it isn't empty. Doing it
|
|
# this way allows us to have the user specify a different compiler in an easy way.
|
|
#
|
|
[[ -z "$CC" ]] && CC="cc"
|
|
|
|
# clear the screen
|
|
#
|
|
clear
|
|
|
|
# Verify we have the model
|
|
#
|
|
if [[ ! -s model ]]; then
|
|
echo 'ERROR: model not found!' 1>&2
|
|
echo 1>&2
|
|
echo 'You must successfully run ./get_model.sh and download the model to run this program.' 1>&2
|
|
echo 1>&2
|
|
exit 1
|
|
fi
|
|
|
|
# make sure the program has been built
|
|
#
|
|
read -r -n 1 -p "Press any key to when ready: "
|
|
echo 1>&2
|
|
MAKE=$(command -v gmake)
|
|
${MAKE:=make} CC="$CC" all >/dev/null || exit 1
|
|
|
|
# select a game
|
|
#
|
|
export SELECT=""
|
|
while [[ -z $SELECT ]]; do
|
|
|
|
export NAME=""
|
|
export Z3=""
|
|
export SAVE=""
|
|
echo 1>&2
|
|
echo 'Select a personality (if in doubt try 0):' 1>&2
|
|
echo 1>&2
|
|
echo ' 0 prog - Common ChatIOCCC' 1<&2
|
|
echo ' 1 linux - As an imaginary Linux-based compiler' 1>&2
|
|
echo ' 2 eeyore - The old grey donkey from the Winnie-the-Pooh books' 1>&2
|
|
echo ' 3 rainman - In the style of Raymond, from the movie "Rain Man"' 1>&2
|
|
echo ' 4 snoop - Attempts to answer in the style of Snoop Dogg' 1>&2
|
|
echo 1>&2
|
|
echo ' q Quit without running a personality' 1>&2
|
|
echo 1>&2
|
|
read -r -n 1 -p "Enter your selection: " SELECT
|
|
echo 1>&2
|
|
echo 1>&2
|
|
|
|
# validate prompt
|
|
#
|
|
case "$SELECT" in
|
|
0) NAME="prog" ;;
|
|
1) NAME="linux" ;;
|
|
2) NAME="eeyore" ;;
|
|
3) NAME="rainman" ;;
|
|
4) NAME="snoop" ;;
|
|
q) exit 0 ;;
|
|
Q) exit 0 ;;
|
|
*) echo 'ERROR: invalid selection, try again' 1>&2
|
|
SELECT="" # ask for a different selection
|
|
continue ;;
|
|
esac
|
|
export PROG="./$NAME"
|
|
|
|
# See if we can compile an openmp version
|
|
#
|
|
if [[ ! -x ${NAME}_openmp ]]; then
|
|
make CC="$CC" "${NAME}_openmp" >/dev/null 2>&1 < /dev/null
|
|
fi
|
|
if [[ -x ${NAME}_openmp ]]; then
|
|
# we have an openmp version, so use it
|
|
#
|
|
PROG="./${NAME}_openmp"
|
|
fi
|
|
done
|
|
|
|
# try the program
|
|
#
|
|
echo 'NOTE: Please be patient. This is not the fastest LLM agent.' 1>&2
|
|
echo 1>&2
|
|
echo 'NOTE: To exit, press CTRL+C' 1>&2
|
|
echo 1>&2
|
|
read -r -n 1 -p "Press any key to run: $PROG: "
|
|
echo 1>&2
|
|
echo 1>&2
|
|
"$PROG"
|
|
echo 1>&2
|