diff --git a/bin/omarchy-install-obsidian-cli b/bin/omarchy-install-obsidian-cli new file mode 100755 index 0000000000..e239ec32d9 --- /dev/null +++ b/bin/omarchy-install-obsidian-cli @@ -0,0 +1,49 @@ +#!/bin/bash + +# omarchy:summary=Install the official Obsidian CLI binary +# omarchy:hidden=false + +echo "Fetching latest Obsidian release version..." +LATEST_RELEASE=$(curl -sL "https://api.github.com/repos/obsidianmd/obsidian-releases/releases/latest" | jq -r '.tag_name') + +if [[ "$LATEST_RELEASE" == "null" || -z "$LATEST_RELEASE" ]]; then + echo "Error: Could not fetch latest release version from GitHub." + exit 1 +fi + +VERSION="${LATEST_RELEASE#v}" + +# Architecture detection +ARCH=$(uname -m) +if [[ "$ARCH" == "aarch64" || "$ARCH" == "arm64" ]]; then + ARCH_SUFFIX="-arm64" +else + ARCH_SUFFIX="" +fi + +DOWNLOAD_URL="https://github.com/obsidianmd/obsidian-releases/releases/download/${LATEST_RELEASE}/obsidian-${VERSION}${ARCH_SUFFIX}.tar.gz" +TEMP_DIR=$(mktemp -d) + +# Ensure temp dir is cleaned up on exit +trap 'rm -rf "$TEMP_DIR"' EXIT + +echo "Downloading Obsidian CLI v${VERSION}..." +if ! curl -fL "$DOWNLOAD_URL" -o "$TEMP_DIR/obsidian.tar.gz" --progress-bar; then + echo "Error: Download failed." + exit 1 +fi + +echo "Extracting binary..." +tar -xzf "$TEMP_DIR/obsidian.tar.gz" -C "$TEMP_DIR" + +if [[ ! -f "$TEMP_DIR/obsidian-${VERSION}${ARCH_SUFFIX}/obsidian-cli" ]]; then + echo "Error: obsidian-cli binary not found in the downloaded archive." + exit 1 +fi + +echo "Installing to ~/.local/bin/obsidian-cli..." +mkdir -p ~/.local/bin +install -m 755 "$TEMP_DIR/obsidian-${VERSION}${ARCH_SUFFIX}/obsidian-cli" ~/.local/bin/obsidian-cli + +echo "✅ Obsidian CLI installed successfully!" +echo "You can now use 'obsidian-cli ' in your terminal."