mirror of
https://codeberg.org/frosty/dotfiles.git
synced 2024-09-19 11:47:09 -04:00
36 lines
809 B
Bash
Executable file
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"
|