Files
docset-viewer/scripts/download-recommended-docsets.sh
2026-06-21 23:00:20 +00:00

56 lines
2.3 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
cd "$(dirname "$0")/.."
mkdir -p data/docsets tmp
download_docset() {
local label="$1"
local url="$2"
local archive="tmp/${label}.tgz"
echo "==> ${label}"
if find data/docsets -maxdepth 1 -type d -name "*.docset" -iname "${label}.docset" | grep -q .; then
echo " already installed"
return 0
fi
rm -f "$archive"
if ! curl --fail --location --retry 2 --connect-timeout 20 --output "$archive" "$url"; then
echo " download failed, skipping: $url" >&2
rm -f "$archive"
return 0
fi
if ! tar -tzf "$archive" | grep -q '\.docset/'; then
echo " archive does not contain a docset, skipping: $url" >&2
rm -f "$archive"
return 0
fi
tar -xzf "$archive" -C data/docsets
rm -f "$archive"
}
download_docset PHP 'https://kapeli.com/feeds/PHP.tgz'
download_docset MySQL 'https://kapeli.com/feeds/MySQL.tgz'
download_docset MariaDB 'https://kapeli.com/feeds/zzz/user_contributed/build/MariaDB/MariaDB.tgz'
download_docset Nginx 'https://kapeli.com/feeds/Nginx.tgz'
download_docset C 'https://kapeli.com/feeds/C.tgz'
download_docset 'C++' 'https://kapeli.com/feeds/C%2B%2B.tgz'
download_docset Lua 'https://kapeli.com/feeds/Lua.tgz'
download_docset NodeJS 'https://kapeli.com/feeds/NodeJS.tgz'
download_docset ThreeJS 'https://kapeli.com/feeds/zzz/user_contributed/build/Three.js/threejs.tgz'
download_docset OpenGL 'https://kapeli.com/feeds/OpenGL.tgz'
download_docset Vulkan 'https://kapeli.com/feeds/zzz/user_contributed/build/Vulkan/Vulkan.tgz'
download_docset Bash 'https://kapeli.com/feeds/Bash.tgz'
download_docset React 'https://kapeli.com/feeds/React.tgz'
download_docset JavaScript 'https://kapeli.com/feeds/JavaScript.tgz'
download_docset CSS 'https://kapeli.com/feeds/CSS.tgz'
download_docset HTML 'https://kapeli.com/feeds/HTML.tgz'
download_docset TypeScript 'https://kapeli.com/feeds/TypeScript.tgz'
download_docset jQuery 'https://kapeli.com/feeds/jQuery.tgz'
download_docset Sass 'https://kapeli.com/feeds/Sass.tgz'
download_docset Docker 'https://kapeli.com/feeds/Docker.tgz'
download_docset SQLite 'https://kapeli.com/feeds/SQLite.tgz'
download_docset ApacheHTTPServer 'https://kapeli.com/feeds/Apache_HTTP_Server.tgz'
echo "PixiJS: no full Zeal/Dash docset found; skipped."
echo "Vite: no Zeal/Dash docset found; skipped."
find data/docsets -maxdepth 1 -type d -name "*.docset" -print | sort