"Building a Desktop LLM App with cpp-httplib" (#2403)

This commit is contained in:
yhirose
2026-03-21 23:31:55 -04:00
committed by GitHub
parent c2bdb1c5c1
commit 7178f451a4
35 changed files with 8889 additions and 35 deletions

View File

@@ -0,0 +1,38 @@
#!/bin/bash
# Generate the desktop app project by extracting source from the cpp-httplib book.
# Usage: generate_desktop_app_project.sh <output-dir>
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
OUT_DIR="${1:?Usage: $0 <output-dir>}"
BASE_URL="https://raw.githubusercontent.com/yhirose/cpp-httplib/master/docs-src/pages/ja/llm-app"
CACHE_DIR="$SCRIPT_DIR/.cache"
source "$SCRIPT_DIR/extract_code.sh"
# --- Helper: download markdown files (always fetch latest) ---
fetch_md() {
local name="$1"
local path="$CACHE_DIR/$name"
curl -sfL "$BASE_URL/$name" -o "$path" || { echo "ERROR: Failed to download $name" >&2; return 1; }
echo "$path"
}
# --- Main ---
echo "=== Generating desktop app project ==="
mkdir -p "$CACHE_DIR" "$OUT_DIR/src" "$OUT_DIR/public"
CH05=$(fetch_md "ch05-web-ui.md")
CH06=$(fetch_md "ch06-desktop-app.md")
echo "Extracting source files..."
extract_code "$CH06" "CMakeLists.txt" > "$OUT_DIR/CMakeLists.txt"
extract_code "$CH06" "main.cpp" > "$OUT_DIR/src/main.cpp"
extract_code "$CH05" "index.html" > "$OUT_DIR/public/index.html"
extract_code "$CH05" "style.css" > "$OUT_DIR/public/style.css"
extract_code "$CH05" "script.js" > "$OUT_DIR/public/script.js"
echo "=== Done ==="
echo "Generated files in: $OUT_DIR"