dotfiles/eggs/utility/util-scripts/global_ai_toggle.sh

75 lines
1.5 KiB
Bash

#!/usr/share/env bin
DOCKER_LOCATION="$HOME/.config/yolk/eggs/localai"
function _docker_run() {
# 1: up/down/..
cd $DOCKER_LOCATION
extra_flags=()
if [ $1 = "up" ]; then
extra_flags+=("-d")
fi
docker compose $1 $extra_flags
cd - > /dev/zero
}
function _zed_replace() {
# 1: true/false/..
sed --follow-symlinks -i "s/\"disable_ai\":.*/\"disable_ai\": ${1},/" $HOME/.config/yolk/eggs/zed/settings.json
}
function show_usage() {
echo "Usage: $0 [--help] [command]"
echo "[command]"
echo " on: Turn AI features on"
echo " off: Turn AI features off"
echo " toggle: Toggle AI"
echo " status: Get curent status based on docker"
}
function turn_on() {
_docker_run up
_zed_replace false
}
function turn_off() {
_docker_run down
_zed_replace true
}
function toggle() {
if [ "$(get_status)" = "on" ];then
turn_off
else
turn_on
fi
get_status
}
function get_status() {
cd $DOCKER_LOCATION
if [ "$(docker compose ps -q)" != "" ]; then
echo "on"
else
echo "off"
fi
cd - > /dev/zero
}
if [ $# -eq 0 ]; then
echo "Argument needet!"; show_usage; exit 1
fi
for arg in "$@"; do
case $arg in
--help|-h) show_usage; exit 0 ;;
on) turn_on; ;;
off) turn_off; ;;
status) get_status; ;;
toggle) toggle; ;;
*)
echo "Unsuported: $arg"; show_usage; exit 1 ;;
esac
done