diff options
author | Louie S <louie@example.com> | 2024-01-01 19:51:15 -0500 |
---|---|---|
committer | Louie S <louie@example.com> | 2024-01-01 19:51:15 -0500 |
commit | 7b800e0293e0762db87f4f6f6377038c6540718b (patch) | |
tree | 1c552f536786f0921692945eb4e855e7d9103ab3 /rom-desktop-entry-generator.sh | |
parent | 91c2d82b779bc736d59a15b38e83b77bc05aebe2 (diff) |
Use subdirectories for installation
Diffstat (limited to 'rom-desktop-entry-generator.sh')
-rwxr-xr-x | rom-desktop-entry-generator.sh | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/rom-desktop-entry-generator.sh b/rom-desktop-entry-generator.sh index dc67685..01663b4 100755 --- a/rom-desktop-entry-generator.sh +++ b/rom-desktop-entry-generator.sh @@ -8,7 +8,7 @@ STDERR_LOG=/dev/stderr BASEDIR="$(dirname "$0")" SCRIPTNAME="$(basename "$0" .sh)" DESKTOP_ENTRY_OUTPUT_DIR="$BASEDIR/output" -DESKTOP_ENTRY_INSTALL_DIR="$HOME/.local/share/applications" +DESKTOP_ENTRY_INSTALL_DIR="$HOME/.local/share/applications/$SCRIPTNAME" ICON_SOURCE_DIR="$BASEDIR/icon" ICON_INSTALL_DIR="$HOME/.local/share/icons/hicolor" @@ -18,7 +18,7 @@ build_desktop_file() { NAME="$1" ROMPATH="$2" SYSTEM="$3" - OUTPUT="$DESKTOP_ENTRY_OUTPUT_DIR/$SYSTEM/${SCRIPTNAME}_${SYSTEM}_${NAME}.desktop" + OUTPUT="$DESKTOP_ENTRY_OUTPUT_DIR/$SYSTEM/$NAME.desktop" echo "Building $NAME" >> "$STDOUT_LOG" @@ -142,13 +142,15 @@ install_wrapper() { find "$DESKTOP_ENTRY_OUTPUT_DIR/$1" -type f | while read -r file; do echo "Installing $file" >> "$STDOUT_LOG" + NAME="$(grep "^Name=" "$file" | cut -d "=" -f 2)" + SYSTEM="$(basename "$(dirname "$file")")" + # Install desktop entry # TODO look into using xdg-desktop-menu for install and uninstall - install "$file" "$DESKTOP_ENTRY_INSTALL_DIR" + mkdir -p "$DESKTOP_ENTRY_INSTALL_DIR/$SYSTEM" + install "$file" "$DESKTOP_ENTRY_INSTALL_DIR/$SYSTEM" # Install icon - NAME="$(grep "^Name=" "$file" | cut -d "=" -f 2)" - SYSTEM="$(basename "$(dirname "$file")")" install_icon "$NAME" "$SYSTEM" done @@ -185,7 +187,9 @@ uninstall_wrapper() { done # Remove the desktop entry - rm -f "$DESKTOP_ENTRY_INSTALL_DIR/$(basename "$file")" + rm -f "$DESKTOP_ENTRY_INSTALL_DIR/$(basename "$(dirname "$file")")/$(basename "$file")" + rmdir --ignore-fail-on-non-empty "$DESKTOP_ENTRY_INSTALL_DIR/$(basename "$(dirname "$file")")" + rmdir --ignore-fail-on-non-empty "$DESKTOP_ENTRY_INSTALL_DIR" done shift @@ -272,6 +276,8 @@ while [ -n "$1" ]; do install_wrapper $TARGET_SYSTEMS # Workaround to refresh icons touch "$ICON_INSTALL_DIR" + # Workaround to refresh desktop database + touch "$DESKTOP_ENTRY_INSTALL_DIR" continue ;; uninstall) @@ -280,6 +286,8 @@ while [ -n "$1" ]; do TARGET_SYSTEMS="$(ls -1 "$DESKTOP_ENTRY_OUTPUT_DIR")" fi uninstall_wrapper $TARGET_SYSTEMS + # Workaround to refresh desktop database + touch "$(dirname "$DESKTOP_ENTRY_INSTALL_DIR")" continue ;; esac |