Skip to content

Instantly share code, notes, and snippets.

@natanael-b
Last active September 2, 2024 13:38
Show Gist options
  • Save natanael-b/a17204103741e16fcad33308b750eb06 to your computer and use it in GitHub Desktop.
Save natanael-b/a17204103741e16fcad33308b750eb06 to your computer and use it in GitHub Desktop.
#!/usr/bin/env bash
# Serviço de atualização dos Icones Mágicos
[ "${XDG_DATA_HOME}" = "" ] && XDG_DATA_HOME="${HOME}/.local/share"
mkdir -p "${XDG_DATA_HOME}/mime/packages/"
mkdir -p "${XDG_DATA_HOME}/applications/"
echo '<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
<mime-type type="image/x-png-app">
<comment>Flathub PNG reference</comment>
<glob pattern="*.app"/>
<sub-class-of type="image/png"/>
</mime-type>
</mime-info>' > "${XDG_DATA_HOME}/mime/packages/image-app.xml"
echo '[Desktop Entry]
Name=Flatpak Install GUI
Exec=flatpak-install-gui %f
MimeType=image/x-png-app;
NoDisplay=true' > "${XDG_DATA_HOME}/applications/flatpak-install-gui.desktop"
update-mime-database "${XDG_DATA_HOME}/mime/"
update-desktop-database "${XDG_DATA_HOME}/applications/"
mkdir -p "${XDG_DATA_HOME}/Icones-Magicos"
cd "${XDG_DATA_HOME}/Icones-Magicos"
declare -A categories
categories["Office"]="Produtividade"
categories["Graphics"]="Gráfica e Fotografia"
categories["AudioVideo"]="Multimídia"
categories["Education"]="Educação"
categories["Games"]="Diversão e Jogos"
categories["Network"]="Comunicação e Internet"
categories["Development"]="Desenvolvimento e programação"
categories["Science"]="Ciência"
categories["System"]="Sistema"
categories["Utility"]="Utilitários"
[ ! -f "categories.tar" ] && tar --format=ustar -cf "categories.tar" /dev/null
mountPoint="${HOME}/Ícones Mágicos"
umount -l "${mountPoint}"
archivemount -o nobackup "categories.tar" "${mountPoint}"
cd "${mountPoint}"
for category in "${!categories[@]}"; do
directory="${categories[$category]}"
mkdir -p "${directory}"
wget -q -O - "https://flathub.org/api/v1/apps/category/${category}" | sed 's|flatpakAppId|\n|g' | grep -v '\[{"' | \
sed 's|":"||;s|","name":"|\t|g;s|","summary".*"iconDesktopUrl":"|\t|;s|.png".*|.png|' | \
awk -F'\t' '{print "[ ! -f \"'"${directory}"'/"$2".app\" ] && wget -q \""$3"\" -O \"'"${directory}"'/"$2".app\" && echo -e \"\\n"$1"\" >> \"'"${directory}"'/"$2".app\";" }' | bash;
done
umount -l "${mountPoint}"
archivemount -o nobackup -o readonly "categories.tar" "${mountPoint}"
# Remove plugins, runtime and others non apps flatpaks
find . -size 0 -delete
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment