You are viewing a single thread.
View all comments View context
3 points

Pretty complicated

#!/bin/bash

# List contents of ~/.var/app/
files=$(ls -1 ~/.var/app/)

# Loop through each element of the folder
for file in $files; do
    # Set the name as a variable
    app_name="${file##*/}"

    # Check if a flatpak app of that name is installed
    if ! flatpak list 2> /dev/null | grep -qw $app_name; then
        # Ask the user to delete the folder
        read -p "The app $app_name is not installed. Do you want to delete its folder? (y/n): " choice
        case "$choice" in
            [Yy]* )
                # Remove the folder recursively
                rm -rf ~/.var/app/$file;;
            [Nn]* )
                echo "Skipping deletion of $app_name folder.";;
            * )
                echo "Invalid input. Skipping deletion of $app_name folder.";;
        esac
    fi
done

echo "All Apps checked."
permalink
report
parent
reply
1 point

The check for if a package is installed can be simplified using flatpak info.

$ flatpak info com.example.Nonexistent &>/dev/null; echo $?
1
$ flatpak info org.mozilla.firefox &>/dev/null; echo $?    
0
permalink
report
parent
reply

Free and Open Source Software

!foss@beehaw.org

Create post

If it’s free and open source and it’s also software, it can be discussed here. Subcommunity of Technology.


This community’s icon was made by Aaron Schneider, under the CC-BY-NC-SA 4.0 license.

Community stats

  • 784

    Monthly active users

  • 885

    Posts

  • 12K

    Comments