some minor fixes to sxp
This commit is contained in:
parent
9a85b4afe7
commit
d3f882de03
|
@ -2,8 +2,8 @@
|
|||
# speedwm-sxp
|
||||
|
||||
# some functions we can use on demand
|
||||
print_text() { printf "%s\n%s\nClear\nRemove\nExit\n" "$(cat "$CUSTOM_HISTFILE")" "------"; } # function which returns history
|
||||
print() { OP="$(print_text | "$RUNLAUNCHER" -g 1 -l 40 -p "$*")"; } # function which prints the menu
|
||||
print_text() { printf "%s\n%s\nClear\nRemove\nExit" "$(grep -ve '^$' $CUSTOM_HISTFILE)" "------"; } # function which returns history
|
||||
print_menu() { OP="$(print_text | "$RUNLAUNCHER" -g 1 -l 40 -p "$*")"; } # function which prints the menu
|
||||
|
||||
# basic variables
|
||||
[ -z "$CUSTOM_HISTFILE" ] && CUSTOM_HISTFILE="$HOME/.config/speedwm/.custom_history"
|
||||
|
@ -14,26 +14,28 @@ mkdir -p "$(dirname "$CUSTOM_HISTFILE")"; touch "$CUSTOM_HISTFILE"
|
|||
|
||||
# parse current expression
|
||||
parse() {
|
||||
print "$@"
|
||||
[ "$OP" = "Clear" ] && printf "" > "$CUSTOM_HISTFILE" && exit
|
||||
[ "$OP" = "Exit" ] && exit 0
|
||||
[ "$OP" = "------" ] && exit 0
|
||||
[ -z "$OP" ] && exit 0
|
||||
print_menu "$@"
|
||||
case "$OP" in
|
||||
"Clear") rm -f "$CUSTOM_HISTFILE"; mkdir -p "$(dirname "$CUSTOM_HISTFILE")"; touch "$CUSTOM_HISTFILE"; main "$@" ;;
|
||||
"Exit") exit 0 ;;
|
||||
"------") exit 0 ;;
|
||||
"") exit 0 ;;
|
||||
esac
|
||||
}
|
||||
|
||||
main() {
|
||||
parse "Enter an S expression:"
|
||||
[ "$OP" = "Remove" ] && \
|
||||
remove_entry "$@" || \
|
||||
add_entry "$@"
|
||||
perf_entry "$@"
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
# write expression
|
||||
add_entry() {
|
||||
FILE_CONTENTS="$(grep -v "$OP" "$CUSTOM_HISTFILE")"
|
||||
printf "%s\n" "$FILE_CONTENTS" > "$CUSTOM_HISTFILE" # prevent duplicates
|
||||
perf_entry() {
|
||||
file_contents="$(grep -v "$OP" "$CUSTOM_HISTFILE")"
|
||||
printf "%s\n" "$file_contents" > "$CUSTOM_HISTFILE" # prevent duplicates
|
||||
|
||||
# add entry
|
||||
printf "%s\n" "$OP" >> "$CUSTOM_HISTFILE"
|
||||
|
@ -46,9 +48,9 @@ remove_entry() {
|
|||
parse "Remove:"
|
||||
[ "$OP" = "Remove" ] && remove_entry "$@"
|
||||
|
||||
# add everything except the entry to $FILE_CONTENTS and write that back to the file
|
||||
FILE_CONTENTS="$(grep -v "$OP" "$CUSTOM_HISTFILE")" || return 1
|
||||
printf "%s\n" "$FILE_CONTENTS" > "$CUSTOM_HISTFILE" || return 1
|
||||
# add everything except the entry to $file_contents and write that back to the file
|
||||
file_contents="$(grep -v "$OP" "$CUSTOM_HISTFILE")" || return 1
|
||||
printf "%s\n" "$file_contents" > "$CUSTOM_HISTFILE" || return 1
|
||||
}
|
||||
|
||||
main "$@"
|
||||
|
|
Loading…
Reference in a new issue