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() {
|
package() {
|
||||||
cd "${pkgname}-${pkgver}"
|
cd "${pkgname}-${pkgver}"
|
||||||
install -Dm755 cliamp "${pkgdir}/usr/bin/cliamp"
|
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
|
HEREDOC
|
||||||
|
|
||||||
|
|||||||
@@ -237,17 +237,26 @@ jobs:
|
|||||||
name: checksums
|
name: checksums
|
||||||
|
|
||||||
- name: Set env vars
|
- name: Set env vars
|
||||||
|
env:
|
||||||
|
REPO: ${{ github.repository }}
|
||||||
run: |
|
run: |
|
||||||
TAG="${GITHUB_REF#refs/tags/}"
|
TAG="${GITHUB_REF#refs/tags/}"
|
||||||
VERSION="${TAG#v}"
|
VERSION="${TAG#v}"
|
||||||
cat checksums.txt
|
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 "VERSION=${VERSION}" >> $GITHUB_ENV
|
||||||
echo "TAG=${TAG}" >> $GITHUB_ENV
|
echo "TAG=${TAG}" >> $GITHUB_ENV
|
||||||
echo "SHA_DARWIN_ARM64=$(grep 'darwin-arm64' checksums.txt | awk '{print $1}')" >> $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_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_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_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
|
- name: Generate and push formula
|
||||||
env:
|
env:
|
||||||
@@ -297,6 +306,16 @@ jobs:
|
|||||||
end
|
end
|
||||||
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
|
def install
|
||||||
if build.head?
|
if build.head?
|
||||||
# Build from source for HEAD
|
# Build from source for HEAD
|
||||||
@@ -306,6 +325,16 @@ jobs:
|
|||||||
binary = Dir["cliamp-*"].first
|
binary = Dir["cliamp-*"].first
|
||||||
bin.install binary => "cliamp"
|
bin.install binary => "cliamp"
|
||||||
end
|
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
|
end
|
||||||
|
|
||||||
test do
|
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
|
fi
|
||||||
|
|
||||||
echo "Installed cliamp to ${INSTALL_DIR}/cliamp"
|
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