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'"