summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Bobov <anton@bobov.name>2024-09-07 12:16:37 +0500
committerAnton Bobov <anton@bobov.name>2024-09-07 12:17:48 +0500
commit8a19d8bb7a9245d7bd699fd939b8c9302b22eb93 (patch)
treed71b3eb4e9a2b6ca29820858a704a2af1fec7c5f
parentf0aba4025bc04b4f752b2ad82536bb21c5d843a3 (diff)
Add ollama model update script
-rwxr-xr-xollama-update43
1 files changed, 43 insertions, 0 deletions
diff --git a/ollama-update b/ollama-update
new file mode 100755
index 0000000..c575ccc
--- /dev/null
+++ b/ollama-update
@@ -0,0 +1,43 @@
+#!/bin/bash
+# Updates all Ollama models.
+
+set -euo pipefail
+
+is_ollama_running() {
+ ollama ps &>/dev/null
+}
+
+ensure_ollama_running() {
+ if ! is_ollama_running; then
+ ollama serve &>/dev/null 2>&1 &
+ OLLAMA_PID=$!
+ trap 'kill $OLLAMA_PID' EXIT
+ local retry=3
+ while ! is_ollama_running; do
+ retry=$((retry - 1))
+ if [ $retry -lt 1 ]; then
+ echo "ollama serve not responding" >&2
+ exit 1
+ fi
+ sleep 1s
+ done
+ fi
+}
+
+update_models() {
+ ollama list | awk 'NR>1{print $1}' | while read -r model; do
+ echo "Updating $model"
+ ollama pull "$model"
+ done
+}
+
+main() {
+ if ! command -v ollama >/dev/null; then
+ echo "No ollama command in path. See https://ollama.com/."
+ exit 1
+ fi
+ ensure_ollama_running
+ update_models
+}
+
+main "$@"