summary refs log tree commit diff
diff options
context:
space:
mode:
authorZach DeCook <zachdecook@librem.one>2023-10-16 08:47:47 -0400
committerZach DeCook <zachdecook@librem.one>2023-10-16 08:47:47 -0400
commit8888578d338049ddcf4dd45f93f55eb0b5ea906c (patch)
tree1e2cae3914a35218080f1459a544ee83e939101e
parent90ea8ad30eb469bb65171427a39f93f433e5a963 (diff)
downloaddotfiles-8888578d338049ddcf4dd45f93f55eb0b5ea906c.tar.gz
appstore: add installed status in alpine
-rwxr-xr-x.config/sxmo/userscripts/appstore.sh14
1 files changed, 13 insertions, 1 deletions
diff --git a/.config/sxmo/userscripts/appstore.sh b/.config/sxmo/userscripts/appstore.sh
index 5196f52..1f28116 100755
--- a/.config/sxmo/userscripts/appstore.sh
+++ b/.config/sxmo/userscripts/appstore.sh
@@ -107,6 +107,18 @@ pkgNames(){
 }
 
 
+pkgInstalled(){
+	case "$ID_LIKE" in
+		"alpine")
+			tee /tmp/appstoreapps | xargs -r apk info -e |sed 's/.\+/✅ \0/g' | cat - /tmp/appstoreapps |sed 's/^[a-z]/🟩 \0/g'| sort -i |uniq -f1
+			;;
+		*)
+			cat - |sed 's/.\+/❓ \0/g'
+			printf "I don't know how to check installed status from commands in '%s'.\n" "$ID_LIKE" > /dev/stderr
+			;;
+	esac
+}
+
 ## Menus
 
 topMenu(){
@@ -122,7 +134,7 @@ menuName(){
 	typ="$(echo "$Menus" | grep "$name	" | cut -f2)"
 	# shellcheck disable=SC2016
 	grep='^\$icon_'"$typ"'	'
-	pkg="$(listApps | grep "$grep" |cut -f2|pkgNames|awk 'BEGIN{print ".."} ($0){print} END{print "exit"}'|sxmo_dmenu.sh -i -p "$name")"
+	pkg="$(listApps | grep "$grep" |cut -f2|pkgNames|pkgInstalled|awk 'BEGIN{print ".."} ($0){print} END{print "exit"}'|sxmo_dmenu.sh -i -p "$name"|cut -d' ' -f2)"
 	if test "$pkg" = "exit" || ! test "$pkg"; then
 		exit
 	elif test "$pkg" = ".."; then