Remove entry validation, not very useful and breaks several features

Still need some speed improvements
This commit is contained in:
speedie 2023-06-23 00:38:44 +02:00
parent e22c5f7e75
commit 2c256c6d5f

View file

@ -29,7 +29,6 @@ HIDDEN_KEYWORDS="${HIDDEN_KEYWORDS:-spmenu}"
KEYWORDS="${KEYWORDS:-}"
DISPLAY_DUPLICATES="${DISPLAY_DUPLICATES:-false}"
DISPLAY_DESCRIPTION="${DISPLAY_DESCRIPTION:-true}"
VALIDATE_ENTRIES="${VALIDATE_ENTRIES:-true}"
LS_ARGS="${LS_ARGS:- --color=always}"
USE_FULL_PATH="${USE_FULL_PATH:-false}"
HELP_COLOR="${HELP_COLOR:-#FFFF00}"
@ -255,7 +254,6 @@ ENTRY_KEYWORDS="\$KEYWORDS" # Keywords that will be matched, needs to be in grep
AUTOREFRESH="false" # Refresh (clear) cache if there are more entries available than cached. May cause cache to be cleared every time in some cases. (true/false)
MULTISELECT="true" # Allow handling multiple items, if set to false only the first line/selected item will be used.
IMAGE="true" # Display images (true/false)
VALIDATE_ENTRIES="true" # Validate entries using desktop-file-validate (true/false)
DISPLAY_DESCRIPTION="true" # Display description (true/false)"
DESCRIPTION_COLOR="#999888" # Description text color
LOGFILE="/tmp/spmenu_run.log" # Log file
@ -504,13 +502,23 @@ print_desktop_list() {
it_file=()
it_term=()
# autorefreshing
if [ "$AUTOREFRESH" = "true" ] && [ "$1" != "noc" ]; then
entry_c="$(find "${desktopdir[@]}" -type f -name '*.desktop' | wc -l)"
[ -f "$FILEFILE" ] && cached_c="$(wc -l < "$FILEFILE")" || cached_c="0"
printf "%s: %d\n%s: %d\n" "Cached" "$cached_c" "Entries" "$entry_c" >> "$LOGFILE"
[ "$cfiles" = "true" ] && [ "$entry_c" != "$cached_c" ] && cfiles=false
fi
# print data from entries
if [ "$cfiles" = "false" ]; then
printf "Writing cache files because none exist.\nTitle file: '%s'\nDescription file: '%s'\nIcon file: '%s'\nExec file: '%s'\nFile file: '%s'\nTerm file: '%s'\n" "$TITLEFILE" "$DESCFILE" "$ICONFILE" "$EXECFILE" "$FILEFILE" "$TERMFILE" >> "$LOGFILE" && tail -n 1 "$LOGFILE"
icons="$(find "${icondir[@]}" -type f)"
entry="$(find "${desktopdir[@]}" -type f)"
entry_c="$(printf "$entry\n" | wc -l)"
entry="$(find "${desktopdir[@]}" -type f -name '*.desktop')"
entry_c="$(printf "%s\n" "$entry" | wc -l)"
rm -f "$TITLEFILE" "$ICONFILE" "$DESCFILE" "$EXECFILE" "$FILEFILE" "$TERMFILE"
@ -518,10 +526,6 @@ print_desktop_list() {
cur_file="$(printf "%s" "$entry" | sed "${i}q;d")"
icon_name="$(grep "Icon=" "$cur_file" | head -n 1 | sed "s/Icon=//g")"
if [ -x "$(command -v desktop-file-validate)" ] && [ "$VALIDATE_ENTRIES" != "false" ]; then
desktop-file-validate "$cur_file" > /dev/null || continue
fi
# get details to display
it_title[i]="$(grep "Name=" "$cur_file" | grep -v Generic | head -n 1 | sed "s/Name=//g")"
it_desc[i]="$(grep "GenericName=" "$cur_file" | sed "s/GenericName=//g")"
@ -549,7 +553,7 @@ print_desktop_list() {
printf "%d. Term - %s\n" "${i}" "${it_term[i]}" >> "$LOGFILE"
done
print_desktop_list
print_desktop_list "noc"
else # we have entries, let's populate the arrays
command -v desktop_pre_func > /dev/null && desktop_pre_func
@ -647,7 +651,7 @@ print_desktop_menu() {
HIDDEN_ENTRY_KEYWORDS="${HIDDEN_ENTRY_KEYWORDS:-NULL_ENTRY}"
print_desktop_list | uniq "${uniq_args[@]}" | sort "${sort_args[@]}" | grep -vE "$HIDDEN_ENTRY_KEYWORDS" | grep -E "$ENTRY_KEYWORDS" | $RUNLAUNCHER "${rl_desktop[@]}" > /tmp/spmenu_out
print_desktop_list "" | uniq "${uniq_args[@]}" | sort "${sort_args[@]}" | grep -vE "$HIDDEN_ENTRY_KEYWORDS" | grep -E "$ENTRY_KEYWORDS" | $RUNLAUNCHER "${rl_desktop[@]}" > /tmp/spmenu_out
while read -r menusel; do
[ "$menusel" = "?" ] && print_desktop_help && print_desktop_menu