From 3fda848d844270405349c1c167eb740dead3ed22 Mon Sep 17 00:00:00 2001 From: lemniskett Date: Wed, 16 Dec 2020 14:42:26 +0700 Subject: [PATCH] Add list and remove functionalities. --- archbox-desktop.bash | 62 ++++++++++++++++++++++++++++++++++---------- 1 file changed, 48 insertions(+), 14 deletions(-) diff --git a/archbox-desktop.bash b/archbox-desktop.bash index 7ec9188..5a0d5b4 100755 --- a/archbox-desktop.bash +++ b/archbox-desktop.bash @@ -27,7 +27,10 @@ cat << EOF USAGE: $0 OPTIONS: - -i, --install URL Installs a desktop entry in /usr/share/applications + -i, --install FILE Installs desktop entries in /usr/share/applications + -r, --remove FILE Removes desktop entries in ~/.local/share/applications/archbox + -l, --list List available desktop entries + -s, --list-installed List installed desktop entries -h, --help Displays this help message EOF @@ -36,23 +39,54 @@ EOF case $1 in -i|--install) install_desktop ${@:2} - ;; + ;; + -r|--remove) + eval rm ~/.local/share/applications/archbox/{$selected_entry} + ;; -h|--help) help_text - ;; - -*) - err "Unknown option: $1" - ;; + ;; + -l|--list) + archbox ls -1 --color=none /usr/share/applications + ;; + -s|--list-installed) + ls -1 --color=none ~/.local/share/applications/archbox + ;; *) checkdep zenity checkdep sed - list_desktop="$(archbox ls --color=none -1 /usr/share/applications)" - zenity_entry="$(echo $list_desktop | sed 's/\ /\ FALSE\ /g')" - selected_entry=$(zenity --list --checklist --height=500 --width=450 \ - --title="Archbox Desktop Manager" \ - --text "Select .desktop entries those you want to install" \ - --column "Select" --column "Applications" \ - FALSE $zenity_entry | sed 's/|/\ /g') - install_desktop $selected_entry + action="$(zenity --list --radiolist --title 'Archbox Desktop Manager' \ + --height=200 --width=450 --column 'Select' --column 'Action' \ + --text 'What do you want to do?' \ + FALSE 'Install desktop entries' FALSE 'Remove desktop entries')" + case $action in + 'Install desktop entries') + list_desktop="$(archbox ls --color=none -1 /usr/share/applications)" + zenity_entry="$(echo $list_desktop | sed 's/\ /\ FALSE\ /g')" + selected_entry=$(zenity --list --checklist --height=500 --width=450 \ + --title="Archbox Desktop Manager" \ + --text "Select .desktop entries those you want to install" \ + --column "Select" --column "Applications" \ + FALSE $zenity_entry | sed 's/|/\ /g') + [[ -z $selected_entry ]] && exit 1 + install_desktop $selected_entry + exit 0 + ;; + 'Remove desktop entries') + list_desktop="$(ls --color=none -1 ~/.local/share/applications/archbox)" + [[ -z $list_desktop ]] && zenity --info --title "Archbox Desktop Manager" \ + --text "No .desktop files installed" --width=300 && exit 1 + zenity_entry="$(echo $list_desktop | sed 's/\ /\ FALSE\ /g')" + selected_entry=$(zenity --list --checklist --height=500 --width=450 \ + --title="Archbox Desktop Manager" \ + --text "Select .desktop entries those you want to remove" \ + --column "Select" --column "Applications" \ + FALSE $zenity_entry | sed 's/|/\,/g') + [[ -z $selected_entry ]] && exit 1 + eval rm ~/.local/share/applications/archbox/{$selected_entry} + exit $? + ;; + esac + exit 1 ;; esac \ No newline at end of file