dotfiles/.local/bin/bookmarks-gen

36 lines
809 B
Bash
Executable file

#!/bin/sh
XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}"
EDITOR="${EDITOR:-vim}"
BM_DIRS="$XDG_CONFIG_HOME/bookmarks/directories"
BM_FILES="$XDG_CONFIG_HOME/bookmarks/files"
OUTPUT_FILE="$XDG_CONFIG_HOME/shell/10-bookmarks.sh"
cleanup_file() {
while IFS= read -r line; do
[ -z "$line" ] && continue
while IFS='#' read -r content _; do
[ -n "$content" ] && printf '%s\n' "$content"
done <<EOF
$line
EOF
done <"$1"
}
{
while IFS=' ' read -r name value; do
printf "alias %s='cd %s'\n" "$name" "$value"
done <<EOF
$(cleanup_file "$BM_DIRS")
EOF
# TODO(frosty): Support other applications per line, instead of only using $EDITOR.
while IFS=' ' read -r name value; do
printf "alias %s='%s %s'\n" "$name" "$EDITOR" "$value"
done <<EOF
$(cleanup_file "$BM_FILES")
EOF
} >"$OUTPUT_FILE"