#!/bin/bash # Mock für wget - simuliert GitHub API und Downloads MOCK_DIR="$(cd "$(dirname "$0")/../fixtures" && pwd)" MOCK_STATE_FILE="${MOCK_DIR}/wget_state" # State laden (welche Version soll zurückgegeben werden?) if [[ -f "${MOCK_STATE_FILE}" ]]; then # shellcheck source=/dev/null source "${MOCK_STATE_FILE}" fi # Defaults WGET_LATEST_VERSION="${WGET_LATEST_VERSION:-0.10.15}" WGET_DOWNLOAD_SUCCESS="${WGET_DOWNLOAD_SUCCESS:-true}" WGET_DOWNLOAD_FILE="${WGET_DOWNLOAD_FILE:-${MOCK_DIR}/Logseq-linux-x64-0.10.15.AppImage}" # Relativen Download-Pfad gegen das Fixtures-Verzeichnis auflösen (portable State-Dateien) if [[ "${WGET_DOWNLOAD_FILE}" != /* ]]; then WGET_DOWNLOAD_FILE="${MOCK_DIR}/${WGET_DOWNLOAD_FILE}" fi case "$*" in *releases/latest*) # Simuliere GitHub Release-Seite echo "Latest" ;; *Logseq-linux-x64-*.AppImage*) # Download simulieren if [[ "${WGET_DOWNLOAD_SUCCESS}" == "true" ]]; then # Output-Datei ermitteln (-qO oder -O) output_file="" for i in "$@"; do case $i in -qO|-O) output_file="$2" shift 2 ;; esac done if [[ -n "${output_file}" ]]; then cp "${WGET_DOWNLOAD_FILE}" "${output_file}" else cat "${WGET_DOWNLOAD_FILE}" fi exit 0 else exit 1 fi ;; *raw.githubusercontent.com*logseq.png*) # Icon-Download output_file="" for i in "$@"; do case $i in -qO|-O) output_file="$2" shift 2 ;; esac done if [[ -n "${output_file}" ]]; then # Dummy PNG erstellen (1x1 pixel) printf '\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x01\x00\x00\x00\x01\x08\x02\x00\x00\x00\x90wS\xde\x00\x00\x00\x0cIDAT\x08\xd7c\xf8\xff\xff\x3f\x00\x05\xfe\x02\xfe\xa7\x0f\x9d\x1e\x00\x00\x00\x00IEND\xaeB`\x82' > "${output_file}" fi ;; *) echo "Mock wget: unbekannter Aufruf: $*" >&2 exit 1 ;; esac