#!/bin/bash set -euo pipefail # QUARTZ_DIR search logic if [ -z "${QUARTZ_DIR:-}" ]; then if [ -f "quartz.config.ts" ]; then QUARTZ_DIR="$PWD" elif [ -d "$HOME/Personal/notes-quartz" ]; then QUARTZ_DIR="$HOME/Personal/notes-quartz" elif [ -d "$HOME/Projects/notes-quartz" ]; then QUARTZ_DIR="$HOME/Projects/notes-quartz" else echo "Error: QUARTZ_DIR could not be found." >&2 exit 1 fi fi if [ ! -d "$QUARTZ_DIR" ]; then echo "Error: QUARTZ_DIR '$QUARTZ_DIR' is not a directory." >&2 exit 1 fi # NOTES_DIR search logic PARSE_NOTES_DIR="" # Use a copy of args to find -d/--directory ARGS=("$@") for ((i=0; i<${#ARGS[@]}; i++)); do if [[ "${ARGS[i]}" == "-d" || "${ARGS[i]}" == "--directory" ]]; then if [[ $((i+1)) -lt ${#ARGS[@]} ]]; then PARSE_NOTES_DIR="${ARGS[i+1]}" fi break fi done if [ -n "$PARSE_NOTES_DIR" ]; then NOTES_DIR="$PARSE_NOTES_DIR" elif [ -z "${NOTES_DIR:-}" ]; then if [ -d "$HOME/Notes" ]; then NOTES_DIR="$HOME/Notes" elif [ -d "$HOME/Personal/notes" ]; then NOTES_DIR="$HOME/Personal/notes" elif [ -d "$HOME/Projects/notes" ]; then NOTES_DIR="$HOME/Projects/notes" else echo "Error: NOTES_DIR could not be found." >&2 exit 1 fi fi if [ ! -d "$NOTES_DIR" ]; then echo "Error: NOTES_DIR '$NOTES_DIR' is not a directory." >&2 exit 1 fi cd "$QUARTZ_DIR" # Run npx quartz # Following the prompt's structure but using NOTES_DIR for the flag # npx quartz ${argv[1]} --directory ${NOTES_DIR} "$@" # We use ${1:-} for argv[1] to handle cases with no arguments. npx quartz "${1:-}" --directory "$NOTES_DIR" "$@"