1#!/usr/bin/env bash
2
3set -euo pipefail
4cd "$(dirname "$0")/../.."
5shopt -s extglob
6
7script/bundle-linux --flatpak
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"
14if [[ "$channel" == "dev" ]]; then
15 export APP_ID="dev.zed.ZedDev"
16 export APP_NAME="Zed Devel"
17 export BRANDING_LIGHT="#99c1f1"
18 export BRANDING_DARK="#1a5fb4"
19 export ICON_FILE="app-icon-dev"
20elif [[ "$channel" == "nightly" ]]; then
21 export APP_ID="dev.zed.ZedNightly"
22 export APP_NAME="Zed Nightly"
23 export BRANDING_LIGHT="#e9aa6a"
24 export BRANDING_DARK="#1a5fb4"
25 export ICON_FILE="app-icon-nightly"
26elif [[ "$channel" == "preview" ]]; then
27 export APP_ID="dev.zed.ZedPreview"
28 export APP_NAME="Zed Preview"
29 export BRANDING_LIGHT="#99c1f1"
30 export BRANDING_DARK="#1a5fb4"
31 export ICON_FILE="app-icon-preview"
32elif [[ "$channel" == "stable" ]]; then
33 export APP_ID="dev.zed.Zed"
34 export APP_NAME="Zed"
35 export BRANDING_LIGHT="#99c1f1"
36 export BRANDING_DARK="#1a5fb4"
37 export ICON_FILE="app-icon"
38else
39 echo "Invalid channel: '$channel'"
40 exit
41fi
42
43envsubst < "crates/zed/resources/flatpak/manifest-template.json" > "$APP_ID.json"
44flatpak-builder --user --install --force-clean build "$APP_ID.json"
45flatpak build-bundle ~/.local/share/flatpak/repo "target/release/$APP_ID.flatpak" "$APP_ID"
46echo "Created 'target/release/$APP_ID.flatpak'"