From add62d1929656e5269f41cd62aa431fabf5b60a0 Mon Sep 17 00:00:00 2001 From: JeremyStarTM Date: Sat, 15 Jun 2024 15:51:25 +0200 Subject: [PATCH] Add experimental WIP sorting functionality to menu --- bash/bin/launch-menu-apps | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/bash/bin/launch-menu-apps b/bash/bin/launch-menu-apps index 6473ef88..35e63564 100755 --- a/bash/bin/launch-menu-apps +++ b/bash/bin/launch-menu-apps @@ -25,9 +25,38 @@ for script in "${HOME}"/.config/launch-menu-apps.d/*.sh; do source "${script}" done +# Sort entries +if [ -n "${MENU_SORT}" ]; then + echo ":: Warning: Sorting is currently broken and is considered experimental" + + declare -a apps_sorted=($( + for app in "${!apps[@]}"; do + echo "[\"${key}\"]=${apps[${app}]}" + done | sort + )) + + unset apps + declare -A apps=() + for app in "${!apps_sorted[@]}"; do + key=$(echo -n "${apps_sorted[${app}]}" | grep -o '\["[A-Za-z]+"\]' || true) + value=$(echo -n "${apps_sorted[${app}]}" | grep -o '"[A-Za-z]+"' || true) + echo ":: COPY BSE: ${apps_sorted[@]}" + echo ":: KEY: ${key}" + echo " VAL: ${value}" + + apps+=( + ["${app}"]="${apps_sorted[${app}]}" + ) + done +fi + # Create new variables apps_keys= for app in "${!apps[@]}"; do + if [ -n "${MENU_SORT}" ]; then + echo ":: KEYC KEY: ${app}" + echo " VAL: ${apps[${app}]}" + fi [[ -n "${apps_keys}" ]] && apps_keys="${apps_keys}\n" apps_keys=${apps_keys}${app} done