75 lines
1.5 KiB
Bash
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
|