diff options
| author | Lukasz Kasprzak <lukasz.kasprzak@pm.me> | 2026-04-14 22:32:43 +0200 |
|---|---|---|
| committer | Lukasz Kasprzak <lukasz.kasprzak@pm.me> | 2026-04-14 22:32:43 +0200 |
| commit | 83f7fe4b8402bab171d110703a1b1115efbc9b28 (patch) | |
| tree | 19110702c7d740f6bd8ee4f5d2ebcb97442be237 /dmenu-vimwiki-open | |
| parent | 51d43498b07dc97d795947964534f0903cd05db5 (diff) | |
| download | bin-83f7fe4b8402bab171d110703a1b1115efbc9b28.tar.gz bin-83f7fe4b8402bab171d110703a1b1115efbc9b28.zip | |
cleaned up many scrits and deleted some that were of no use; renamed a lot
Diffstat (limited to 'dmenu-vimwiki-open')
| -rwxr-xr-x | dmenu-vimwiki-open | 75 |
1 files changed, 0 insertions, 75 deletions
diff --git a/dmenu-vimwiki-open b/dmenu-vimwiki-open deleted file mode 100755 index e8c4891..0000000 --- a/dmenu-vimwiki-open +++ /dev/null @@ -1,75 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail - -# Optional dmenu theming -# shellcheck disable=SC1090 -[[ -r "${HOME}/.local/bin/dmenu-theming" ]] && . "${HOME}/.local/bin/dmenu-theming" - -DMENU="${DMENU:-dmenu}" -PROMPT="${PROMPT:-VimWiki: }" -EDITOR_CMD="${EDITOR_CMD:-vim}" -TERM_CMD="${TERM_CMD:-st -e}" - -# Set this to your VimWiki root directory -VIMWIKI_ROOT="${VIMWIKI_ROOT:-${HOME}/vimwiki}" # <-- CHANGE if needed - -CACHE_DIR="${XDG_CACHE_HOME:-${HOME}/.cache}/dmenu" -CACHE_FILE="${CACHE_DIR}/vimwiki_files.txt" -CACHE_TTL_SECONDS="${CACHE_TTL_SECONDS:-30}" # how long to trust the cache - -mkdir -p "$CACHE_DIR" - -now_epoch() { date +%s; } - -cache_is_fresh() { - [[ -r "$CACHE_FILE" ]] || return 1 - local mtime - mtime="$(stat -c %Y "$CACHE_FILE" 2>/dev/null || echo 0)" - local age=$(( $(now_epoch) - mtime )) - [[ "$age" -le "$CACHE_TTL_SECONDS" ]] -} - -build_cache() { - if command -v fd >/dev/null 2>&1; then - # Relative paths, ignore common junk - (cd "$VIMWIKI_ROOT" && fd -t f -H \ - -E .git -E .cache -E node_modules -E .venv -E __pycache__ \ - -E attachments -E media \ - .) > "$CACHE_FILE" - else - (cd "$VIMWIKI_ROOT" && find . -type f \ - ! -path './.git/*' \ - ! -path './.cache/*' \ - ! -path './node_modules/*' \ - ! -path './.venv/*' \ - ! -path './__pycache__/*' \ - ! -path './attachments/*' \ - ! -path './media/*' \ - -print | sed 's|^\./||') > "$CACHE_FILE" - fi - - # Sort for stable menu - sort -u -o "$CACHE_FILE" "$CACHE_FILE" -} - -[[ -d "$VIMWIKI_ROOT" ]] || { printf "ERROR: VimWiki root not found: %s\n" "$VIMWIKI_ROOT" >&2; exit 1; } - -cache_is_fresh || build_cache - -picked="$( - cat "$CACHE_FILE" \ - | ${DMENU} -i -l 20 -p "$PROMPT" ${lines:-} ${colors:-} ${font:-} \ - || true -)" -[[ -n "$picked" ]] || exit 0 - -# Safety: no parent traversal -case "$picked" in - *'..'* ) exit 0 ;; -esac - -target="${VIMWIKI_ROOT}/${picked}" -[[ -e "$target" ]] || { printf "ERROR: missing: %s\n" "$target" >&2; exit 1; } - -exec ${TERM_CMD} "$EDITOR_CMD" "$target" - |
