bundle-flatpak

 1#!/usr/bin/env bash
 2
 3set -euo pipefail
 4cd "$(dirname "$0")/../.."
 5shopt -s extglob
 6
 7script/bundle-linux
 8archive_match="zed(-[a-zA-Z0-9]+)?-linux-$(uname -m)\.tar\.gz"
 9archive=$(ls "target/release" | grep -E ${archive_match})
10channel=$(<crates/zed/RELEASE_CHANNEL)
11
12export CHANNEL="$channel"
13export ARCHIVE="$archive"
14export APP_CLI = "zed"
15if [[ "$channel" == "dev" ]]; then
16    export APP_ID="dev.zed.Zed-Dev"
17    export APP_NAME="Zed Devel"
18    export BRANDING_LIGHT="#99c1f1"
19    export BRANDING_DARK="#1a5fb4"
20    export ICON_FILE="app-icon-dev"
21elif [[ "$channel" == "nightly" ]]; then
22    export APP_ID="dev.zed.Zed-Nightly"
23    export APP_NAME="Zed Nightly"
24    export BRANDING_LIGHT="#e9aa6a"
25    export BRANDING_DARK="#1a5fb4"
26    export ICON_FILE="app-icon-nightly"
27elif [[ "$channel" == "preview" ]]; then
28    export APP_ID="dev.zed.Zed-Preview"
29    export APP_NAME="Zed Preview"
30    export BRANDING_LIGHT="#99c1f1"
31    export BRANDING_DARK="#1a5fb4"
32    export ICON_FILE="app-icon-preview"
33elif [[ "$channel" == "stable" ]]; then
34    export APP_ID="dev.zed.Zed"
35    export APP_NAME="Zed"
36    export BRANDING_LIGHT="#99c1f1"
37    export BRANDING_DARK="#1a5fb4"
38    export ICON_FILE="app-icon"
39else
40    echo "Invalid channel: '$channel'"
41    exit
42fi
43
44envsubst < "crates/zed/resources/flatpak/manifest-template.json" > "$APP_ID.json"
45flatpak-builder --user --install --force-clean build "$APP_ID.json"
46flatpak build-bundle ~/.local/share/flatpak/repo "target/release/$APP_ID.flatpak" "$APP_ID"
47echo "Created 'target/release/$APP_ID.flatpak'"