|
1 | 1 | #!/bin/bash |
2 | 2 |
|
| 3 | +# Development script for llama.cpp webui |
| 4 | +# |
| 5 | +# This script starts the webui development servers (Storybook and Vite). |
| 6 | +# Note: You need to start llama-server separately. |
| 7 | +# |
| 8 | +# Usage: |
| 9 | +# bash scripts/dev.sh |
| 10 | +# npm run dev |
| 11 | + |
3 | 12 | cd ../../../ |
4 | 13 |
|
5 | 14 | # Check and install git hooks if missing |
@@ -28,76 +37,19 @@ check_and_install_hooks() { |
28 | 37 | # Install git hooks if needed |
29 | 38 | check_and_install_hooks |
30 | 39 |
|
31 | | -# Check if llama-server binary already exists |
32 | | -if [ ! -f "build/bin/llama-server" ]; then |
33 | | - echo "Building llama-server..." |
34 | | - cmake -B build && cmake --build build --config Release -t llama-server |
35 | | -else |
36 | | - echo "llama-server binary already exists, skipping build." |
37 | | -fi |
38 | | - |
39 | | -# Start llama-server and capture output |
40 | | -echo "Starting llama-server..." |
41 | | -mkfifo server_output.pipe |
42 | | -build/bin/llama-server -hf ggml-org/gpt-oss-20b-GGUF --jinja -c 0 --no-webui > server_output.pipe 2>&1 & |
43 | | -SERVER_PID=$! |
44 | | - |
45 | | -# Function to wait for server to be ready |
46 | | -wait_for_server() { |
47 | | - echo "Waiting for llama-server to be ready..." |
48 | | - local max_wait=60 |
49 | | - local start_time=$(date +%s) |
50 | | - |
51 | | - # Read server output in background and look for the ready message |
52 | | - ( |
53 | | - while IFS= read -r line; do |
54 | | - echo "🔍 Server: $line" |
55 | | - if [[ "$line" == *"server is listening on http://127.0.0.1:8080 - starting the main loop"* ]]; then |
56 | | - echo "✅ llama-server is ready!" |
57 | | - echo "READY" > server_ready.flag |
58 | | - break |
59 | | - fi |
60 | | - done < server_output.pipe |
61 | | - ) & |
62 | | - |
63 | | - # Wait for ready flag or timeout |
64 | | - while [ ! -f server_ready.flag ]; do |
65 | | - local current_time=$(date +%s) |
66 | | - local elapsed=$((current_time - start_time)) |
67 | | - |
68 | | - if [ $elapsed -ge $max_wait ]; then |
69 | | - echo "❌ Server failed to start within $max_wait seconds" |
70 | | - rm -f server_ready.flag |
71 | | - return 1 |
72 | | - fi |
73 | | - |
74 | | - sleep 1 |
75 | | - done |
76 | | - |
77 | | - rm -f server_ready.flag |
78 | | - return 0 |
79 | | -} |
80 | | - |
81 | 40 | # Cleanup function |
82 | 41 | cleanup() { |
83 | 42 | echo "🧹 Cleaning up..." |
84 | | - kill $SERVER_PID 2>/dev/null |
85 | | - rm -f server_output.pipe server_ready.flag |
86 | 43 | exit |
87 | 44 | } |
88 | 45 |
|
89 | 46 | # Set up signal handlers |
90 | 47 | trap cleanup SIGINT SIGTERM |
91 | 48 |
|
92 | | -# Wait for server to be ready |
93 | | -if wait_for_server; then |
94 | | - echo "🚀 Starting development servers..." |
95 | | - cd tools/server/webui |
96 | | - storybook dev -p 6006 --ci & vite dev --host 0.0.0.0 & |
97 | | - |
98 | | - # Wait for all background processes |
99 | | - wait |
100 | | -else |
101 | | - echo "❌ Failed to start development environment" |
102 | | - cleanup |
103 | | -fi |
| 49 | +echo "🚀 Starting development servers..." |
| 50 | +echo "📝 Note: Make sure to start llama-server separately if needed" |
| 51 | +cd tools/server/webui |
| 52 | +storybook dev -p 6006 --ci & vite dev --host 0.0.0.0 & |
| 53 | + |
| 54 | +# Wait for all background processes |
| 55 | +wait |
0 commit comments