some cleanup in the script

This commit is contained in:
speedie 2023-05-13 17:35:16 +02:00
parent 195e4252b7
commit 66bcc31242

View file

@ -27,6 +27,7 @@ HIDDEN_KEYWORDS="${HIDDEN_KEYWORDS:-spmenu}"
KEYWORDS="${KEYWORDS:-}" KEYWORDS="${KEYWORDS:-}"
DISPLAY_DUPLICATES="${DISPLAY_DUPLICATES:-false}" DISPLAY_DUPLICATES="${DISPLAY_DUPLICATES:-false}"
DISPLAY_DESCRIPTION="${DISPLAY_DESCRIPTION:-true}" DISPLAY_DESCRIPTION="${DISPLAY_DESCRIPTION:-true}"
VALIDATE_ENTRIES="${VALIDATE_ENTRIES:-true}"
LS_ARGS="${LS_ARGS:- --color=always}" LS_ARGS="${LS_ARGS:- --color=always}"
USE_FULL_PATH="${USE_FULL_PATH:-false}" USE_FULL_PATH="${USE_FULL_PATH:-false}"
HELP_COLOR="${HELP_COLOR:-#FFFF00}" HELP_COLOR="${HELP_COLOR:-#FFFF00}"
@ -248,6 +249,7 @@ ICON_DIR="\${DESTDIR}\${PREFIX}/share/icons/hicolor \${DESTDIR}\${PREFIX}/share/
TEMPORARY_DIR="\$CONFDIR/spmenu/run/cache" # Directory used to store cached entries TEMPORARY_DIR="\$CONFDIR/spmenu/run/cache" # Directory used to store cached entries
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) 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)
IMAGE="true" # Display images (true/false) IMAGE="true" # Display images (true/false)
VALIDATE_ENTRIES="true" # Validate entries using desktop-file-validate (true/false)
DISPLAY_DESCRIPTION="true" # Display description (true/false)" DISPLAY_DESCRIPTION="true" # Display description (true/false)"
DESCRIPTION_COLOR="#999888" # Description text color DESCRIPTION_COLOR="#999888" # Description text color
LOGFILE="/tmp/spmenu_run.log" # Log file LOGFILE="/tmp/spmenu_run.log" # Log file
@ -500,8 +502,9 @@ print_desktop_list() {
for i in $(seq "$cached_c"); do for i in $(seq "$cached_c"); do
# current file # current file
[ -z "$cached" ] && continue; #[ -z "$cached" ] && break;
cur_file="$(printf "%s" "$cached" | sed "${i}q;d")" && [ ! -e "$cur_file" ] && printf "File '%s' does not exist. Skipping...\n" "$cur_file" >> "$LOGFILE" && continue cur_file="$(printf "%s" "$cached" | sed "${i}q;d")"
[ ! -f "$cur_file" ] && printf "File '%s' does not exist. Skipping...\n" "$cur_file" >> "$LOGFILE" && continue
# get details to display # get details to display
it_title[i]="$(sed "1q;d" "$cur_file" | sed "s/Name://g")" it_title[i]="$(sed "1q;d" "$cur_file" | sed "s/Name://g")"
@ -515,6 +518,12 @@ print_desktop_list() {
printf "%s\n" "${it_desc[i]}" >> "$DESCFILE" printf "%s\n" "${it_desc[i]}" >> "$DESCFILE"
printf "%s\n" "${it_exec[i]}" >> "$EXECFILE" printf "%s\n" "${it_exec[i]}" >> "$EXECFILE"
printf "%s\n" "${it_file[i]}" >> "$FILEFILE" printf "%s\n" "${it_file[i]}" >> "$FILEFILE"
printf "%d. Title - %s\n" "${i}" "${it_title[i]}" >> "$LOGFILE"
printf "%d. Description - %s\n" "${i}" "${it_desc[i]}" >> "$LOGFILE"
printf "%d. Executable - %s\n" "${i}" "${it_exec[i]}" >> "$LOGFILE"
printf "%d. Icon - %s\n" "${i}" "${it_icon[i]}" >> "$LOGFILE"
printf "%d. File - %s\n" "${i}" "${it_file[i]}" >> "$LOGFILE"
done done
print_desktop_list print_desktop_list
@ -528,7 +537,7 @@ print_desktop_list() {
# read icon # read icon
while read -r p; do while read -r p; do
[ "$IMAGE" != "true" ] && continue [ "$IMAGE" != "true" ] && it_icon+=("") && continue
it_icon+=("$p") it_icon+=("$p")
done < "$ICONFILE" done < "$ICONFILE"
@ -599,7 +608,6 @@ exec_program() {
print_desktop_menu() { print_desktop_menu() {
prep_desktop
check_desktop check_desktop
cache_desktop cache_desktop
@ -618,8 +626,7 @@ print_desktop_menu() {
prep_desktop() { prep_desktop() {
mkdir -p "${tmpdir[@]}" mkdir -p "${tmpdir[@]}"
rm -f "$LOGFILE" printf "spmenu_run log (%s)\nFunction: Desktop\n" "$(date "+%D %T")" > "$LOGFILE"
touch "$LOGFILE"
} }
cache_desktop() { cache_desktop() {
@ -654,7 +661,7 @@ cache_desktop() {
for i in $(seq "$entry_c"); do for i in $(seq "$entry_c"); do
cur_file="$(printf "%s" "$entry" | sed "${i}q;d")" cur_file="$(printf "%s" "$entry" | sed "${i}q;d")"
if [ -x "$(command -v desktop-file-validate)" ]; then if [ -x "$(command -v desktop-file-validate)" ] && [ "$VALIDATE_ENTRIES" != "false" ]; then
desktop-file-validate "$cur_file" > /dev/null || continue desktop-file-validate "$cur_file" > /dev/null || continue
fi fi
@ -668,6 +675,7 @@ cache_desktop() {
# write the file # write the file
printf "%s\n%s\n%s\n%s\n" "Name:$name" "Description:$desc" "Executable:$exec" "Icon:$icon" > "${tmpdir[*]}/$(basename "$cur_file").entry" printf "%s\n%s\n%s\n%s\n" "Name:$name" "Description:$desc" "Executable:$exec" "Icon:$icon" > "${tmpdir[*]}/$(basename "$cur_file").entry"
printf "Entry %s: %s\n%s\n%s\n%s\n" "$i" "Name:$name" "Description:$desc" "Executable:$exec" "Icon:$icon" >> "$LOGFILE"
done done
# scan # scan
@ -733,6 +741,7 @@ main() {
"fm") prepare_dirnav "$args" "fm") prepare_dirnav "$args"
;; ;;
"desktop") "desktop")
prep_desktop
print_desktop_menu "$args" print_desktop_menu "$args"
;; ;;
"help") "help")