mirror of
https://github.com/Felitendo/spotifast.git
synced 2026-11-01 17:33:26 +01:00
A Jekyll VitePress documentation site under docs/ — what Fastpotify is, getting started, everyday use, download, and reference pages on settings, files, and how the client connects to Spotify — deployed to GitHub Pages. CI tests on Linux, macOS, and Windows and lints with rustfmt and clippy. Tags build release artifacts for Linux (x86_64, aarch64), Windows (x86_64, aarch64), and a universal macOS app bundle in a DMG, with optional signing and notarization when Apple credentials exist as secrets, all published to a GitHub release with checksums.
32 lines
1.0 KiB
Bash
Executable File
32 lines
1.0 KiB
Bash
Executable File
#!/bin/bash
|
|
# Build Fastpotify.app from a GUI binary, on a macOS machine.
|
|
#
|
|
# packaging/macos/bundle.sh <binary> <output.app> <version>
|
|
#
|
|
# The .icns is generated here from the committed 1024px PNG, because iconutil
|
|
# only exists on macOS. The Info.plist template lives next to this script.
|
|
set -euo pipefail
|
|
|
|
binary="$1"
|
|
app="$2"
|
|
version="$3"
|
|
here="$(cd "$(dirname "$0")" && pwd)"
|
|
|
|
rm -rf "$app"
|
|
mkdir -p "$app/Contents/MacOS" "$app/Contents/Resources"
|
|
|
|
cp "$binary" "$app/Contents/MacOS/fastpotify"
|
|
chmod 755 "$app/Contents/MacOS/fastpotify"
|
|
sed "s/__VERSION__/$version/g" "$here/Info.plist" > "$app/Contents/Info.plist"
|
|
|
|
iconset="$(mktemp -d)/fastpotify.iconset"
|
|
mkdir -p "$iconset"
|
|
for size in 16 32 64 128 256 512; do
|
|
sips -z $size $size "$here/icon-1024.png" --out "$iconset/icon_${size}x${size}.png" >/dev/null
|
|
double=$((size * 2))
|
|
sips -z $double $double "$here/icon-1024.png" --out "$iconset/icon_${size}x${size}@2x.png" >/dev/null
|
|
done
|
|
iconutil -c icns "$iconset" -o "$app/Contents/Resources/fastpotify.icns"
|
|
|
|
echo "$app"
|