|
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