Install desktop entry and icon across AUR, Homebrew, and install.sh
Adds cliamp.desktop and Cliamp.png at repo root, then wires them into all three packaging surfaces: the AUR PKGBUILD generator drops them under /usr/share/applications and hicolor + pixmaps; the Homebrew formula generator fetches them as resources and stages them on Linux; install.sh installs them under XDG dirs (~/.local/share or /usr/local/share) matching the binary location.
This commit is contained in:
@@ -56,6 +56,10 @@ jobs:
|
||||
package() {
|
||||
cd "${pkgname}-${pkgver}"
|
||||
install -Dm755 cliamp "${pkgdir}/usr/bin/cliamp"
|
||||
install -Dm644 cliamp.desktop "${pkgdir}/usr/share/applications/cliamp.desktop"
|
||||
install -Dm644 Cliamp.png "${pkgdir}/usr/share/icons/hicolor/512x512/apps/cliamp.png"
|
||||
install -Dm644 Cliamp.png "${pkgdir}/usr/share/pixmaps/cliamp.png"
|
||||
install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
|
||||
}
|
||||
HEREDOC
|
||||
|
||||
|
||||
@@ -237,17 +237,26 @@ jobs:
|
||||
name: checksums
|
||||
|
||||
- name: Set env vars
|
||||
env:
|
||||
REPO: ${{ github.repository }}
|
||||
run: |
|
||||
TAG="${GITHUB_REF#refs/tags/}"
|
||||
VERSION="${TAG#v}"
|
||||
cat checksums.txt
|
||||
|
||||
curl -fsSL "https://raw.githubusercontent.com/${REPO}/${TAG}/Cliamp.png" -o Cliamp.png
|
||||
curl -fsSL "https://raw.githubusercontent.com/${REPO}/${TAG}/cliamp.desktop" -o cliamp.desktop
|
||||
SHA_ICON=$(sha256sum Cliamp.png | awk '{print $1}')
|
||||
SHA_DESKTOP=$(sha256sum cliamp.desktop | awk '{print $1}')
|
||||
|
||||
echo "VERSION=${VERSION}" >> $GITHUB_ENV
|
||||
echo "TAG=${TAG}" >> $GITHUB_ENV
|
||||
echo "SHA_DARWIN_ARM64=$(grep 'darwin-arm64' checksums.txt | awk '{print $1}')" >> $GITHUB_ENV
|
||||
echo "SHA_DARWIN_AMD64=$(grep 'darwin-amd64' checksums.txt | awk '{print $1}')" >> $GITHUB_ENV
|
||||
echo "SHA_LINUX_ARM64=$(grep 'linux-arm64' checksums.txt | awk '{print $1}')" >> $GITHUB_ENV
|
||||
echo "SHA_LINUX_AMD64=$(grep 'linux-amd64' checksums.txt | awk '{print $1}')" >> $GITHUB_ENV
|
||||
echo "SHA_ICON=${SHA_ICON}" >> $GITHUB_ENV
|
||||
echo "SHA_DESKTOP=${SHA_DESKTOP}" >> $GITHUB_ENV
|
||||
|
||||
- name: Generate and push formula
|
||||
env:
|
||||
@@ -297,6 +306,16 @@ jobs:
|
||||
end
|
||||
end
|
||||
|
||||
resource "icon" do
|
||||
url "https://raw.githubusercontent.com/bjarneo/cliamp/${TAG}/Cliamp.png"
|
||||
sha256 "${SHA_ICON}"
|
||||
end
|
||||
|
||||
resource "desktop" do
|
||||
url "https://raw.githubusercontent.com/bjarneo/cliamp/${TAG}/cliamp.desktop"
|
||||
sha256 "${SHA_DESKTOP}"
|
||||
end
|
||||
|
||||
def install
|
||||
if build.head?
|
||||
# Build from source for HEAD
|
||||
@@ -306,6 +325,16 @@ jobs:
|
||||
binary = Dir["cliamp-*"].first
|
||||
bin.install binary => "cliamp"
|
||||
end
|
||||
|
||||
# Ship icon under pkgshare so it's always available; expose as
|
||||
# XDG icon + desktop entry on Linux for app-launcher integration.
|
||||
resource("icon").stage { pkgshare.install "Cliamp.png" => "cliamp.png" }
|
||||
|
||||
on_linux do
|
||||
(share/"icons/hicolor/512x512/apps").install_symlink pkgshare/"cliamp.png"
|
||||
(share/"pixmaps").install_symlink pkgshare/"cliamp.png"
|
||||
resource("desktop").stage { (share/"applications").install "cliamp.desktop" }
|
||||
end
|
||||
end
|
||||
|
||||
test do
|
||||
|
||||
BIN
Binary file not shown.
|
After Width: | Height: | Size: 63 KiB |
@@ -0,0 +1,11 @@
|
||||
[Desktop Entry]
|
||||
Name=cliamp
|
||||
GenericName=Music Player
|
||||
Comment=A retro terminal music player inspired by Winamp 2.x
|
||||
Exec=cliamp
|
||||
Icon=cliamp
|
||||
Terminal=true
|
||||
Type=Application
|
||||
Categories=Audio;Music;Player;AudioVideo;ConsoleOnly;
|
||||
Keywords=music;audio;player;terminal;tui;winamp;radio;podcast;
|
||||
StartupNotify=false
|
||||
+61
@@ -89,3 +89,64 @@ else
|
||||
fi
|
||||
|
||||
echo "Installed cliamp to ${INSTALL_DIR}/cliamp"
|
||||
|
||||
# Install desktop entry + icon (Linux only).
|
||||
# Pick user-local share dir for ~/.local/bin installs, /usr/local/share otherwise.
|
||||
if [ "$OS" = "linux" ]; then
|
||||
case "$INSTALL_DIR" in
|
||||
"$HOME"/*)
|
||||
SHARE_DIR="${XDG_DATA_HOME:-$HOME/.local/share}"
|
||||
SUDO=""
|
||||
;;
|
||||
*)
|
||||
SHARE_DIR="/usr/local/share"
|
||||
SUDO="sudo"
|
||||
[ -w "$SHARE_DIR" ] && SUDO=""
|
||||
;;
|
||||
esac
|
||||
|
||||
APP_DIR="${SHARE_DIR}/applications"
|
||||
ICON_DIR="${SHARE_DIR}/icons/hicolor/512x512/apps"
|
||||
|
||||
ICON_TMP=$(mktemp)
|
||||
DESKTOP_TMP=$(mktemp)
|
||||
ICON_URL="https://raw.githubusercontent.com/${REPO}/HEAD/Cliamp.png"
|
||||
|
||||
GOT_ICON=false
|
||||
if command -v curl > /dev/null; then
|
||||
curl -fSL -o "$ICON_TMP" "$ICON_URL" 2>/dev/null && GOT_ICON=true
|
||||
elif command -v wget > /dev/null; then
|
||||
wget -qO "$ICON_TMP" "$ICON_URL" 2>/dev/null && GOT_ICON=true
|
||||
fi
|
||||
|
||||
cat > "$DESKTOP_TMP" <<EOF
|
||||
[Desktop Entry]
|
||||
Name=cliamp
|
||||
GenericName=Music Player
|
||||
Comment=A retro terminal music player inspired by Winamp 2.x
|
||||
Exec=${INSTALL_DIR}/cliamp
|
||||
Icon=cliamp
|
||||
Terminal=true
|
||||
Type=Application
|
||||
Categories=Audio;Music;Player;AudioVideo;ConsoleOnly;
|
||||
Keywords=music;audio;player;terminal;tui;winamp;radio;podcast;
|
||||
StartupNotify=false
|
||||
EOF
|
||||
|
||||
$SUDO mkdir -p "$APP_DIR" "$ICON_DIR"
|
||||
$SUDO install -m 0644 "$DESKTOP_TMP" "${APP_DIR}/cliamp.desktop"
|
||||
if [ "$GOT_ICON" = true ]; then
|
||||
$SUDO install -m 0644 "$ICON_TMP" "${ICON_DIR}/cliamp.png"
|
||||
echo "Installed icon to ${ICON_DIR}/cliamp.png"
|
||||
fi
|
||||
rm -f "$ICON_TMP" "$DESKTOP_TMP"
|
||||
|
||||
echo "Installed desktop entry to ${APP_DIR}/cliamp.desktop"
|
||||
|
||||
if command -v update-desktop-database > /dev/null; then
|
||||
$SUDO update-desktop-database "$APP_DIR" 2>/dev/null || true
|
||||
fi
|
||||
if command -v gtk-update-icon-cache > /dev/null; then
|
||||
$SUDO gtk-update-icon-cache -q "${SHARE_DIR}/icons/hicolor" 2>/dev/null || true
|
||||
fi
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user