12set -euo pipefail34if [[ $# -ne 4 ]]; then5 echo "usage: package-desktop.sh <linux-amd64|darwin-arm64> <version> <binary> <dist>" >&26 exit 27fi89target=$110version=$211binary=$312dist=$413root=$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)14version_number=${version#v}15mkdir -p "$dist"1617case "$target" in18 darwin-arm64)19 mac_version=0.0.020 if [[ "$version_number" =~ ^[0-9]+(\.[0-9]+){0,2} ]]; then21 mac_version=${BASH_REMATCH[0]}22 fi23 stage=$(mktemp -d)24 trap 'rm -rf "$stage"' EXIT25 app="$stage/Atlas.app"26 mkdir -p "$app/Contents/MacOS"27 cp "$binary" "$app/Contents/MacOS/Atlas"28 sed "s/@VERSION@/$mac_version/g" "$root/packaging/macos/Info.plist" > "$app/Contents/Info.plist"29 "$root/scripts/release/sign-macos.sh" "$app" "$dist/Atlas-$version-darwin-arm64.zip"30 ;;31 linux-amd64)32 deb_version=$version_number33 if [[ ! "$deb_version" =~ ^[0-9] ]]; then34 deb_version="0~$deb_version"35 fi36 stage=$(mktemp -d)37 trap 'rm -rf "$stage"' EXIT38 mkdir -p \39 "$stage/DEBIAN" \40 "$stage/usr/bin" \41 "$stage/usr/share/applications" \42 "$stage/usr/share/mime/packages" \43 "$stage/usr/share/doc/atlas-desktop"44 cp "$binary" "$stage/usr/bin/Atlas"45 cp "$root/packaging/linux/dev.felinestatemachine.Atlas.desktop" "$stage/usr/share/applications/"46 cp "$root/packaging/linux/dev.felinestatemachine.atlas.xml" "$stage/usr/share/mime/packages/"47 sed -e "s/@VERSION@/$deb_version/g" -e "s/@ARCH@/amd64/g" \48 "$root/packaging/linux/control" > "$stage/DEBIAN/control"49 install -m 0755 "$root/packaging/linux/postinst" "$stage/DEBIAN/postinst"50 install -m 0755 "$root/packaging/linux/postrm" "$stage/DEBIAN/postrm"51 cp "$root/LICENSE" "$stage/usr/share/doc/atlas-desktop/copyright"52 chmod 0755 "$stage/usr/bin/Atlas"53 dpkg-deb --root-owner-group --build "$stage" "$dist/Atlas-$version-linux-amd64.deb"54 ;;55 *)56 echo "unsupported desktop target: $target" >&257 exit 258 ;;59esac