36 lines
751 B
Bash
Executable file
36 lines
751 B
Bash
Executable file
#!/bin/sh
|
|
# things you should remember but dont
|
|
|
|
REM="${XDG_DATA_HOME:=$HOME/.local/share}/rem.cmd"
|
|
|
|
if ! [ -f "$REM" ]; then
|
|
echo "missing $REM"
|
|
exit 1
|
|
fi
|
|
|
|
cmd="$(cat $REM | fzf -e -q "$1" -1 -d "^" --with-nth="{1}" --accept-nth="{2..}")"
|
|
rest="$cmd"
|
|
final=""
|
|
|
|
prompt() {
|
|
if [ -z "$2" ]; then
|
|
while [ -z "$output" ]; do
|
|
read -E -p "$1: " output
|
|
done
|
|
else
|
|
read -E -p "$1 ($2): " output
|
|
fi
|
|
printf "%s" "${output:-$2}"
|
|
}
|
|
|
|
while case "$rest" in *\{\{*\}\}*) true;; *) false;; esac; do
|
|
prefix="${rest%%\{\{*}"
|
|
temp="${rest#*\{\{}"
|
|
cmd="${temp%%\}\}*}"
|
|
rest="${temp#*\}\}}"
|
|
final="$(printf "%s%s%s" "$final" "$prefix" "$(eval "$cmd")")"
|
|
done
|
|
final="$(printf "%s%s" "$final" "$rest")"
|
|
|
|
printf "%s" "$final"
|