107 lines
3.3 KiB
Bash
Executable File
107 lines
3.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -e
|
|
|
|
workspace_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
|
|
|
|
assert_metadata() {
|
|
local artifact="$1"
|
|
local channel="$2"
|
|
local expected_suffix="$3"
|
|
local expected_package="$4"
|
|
|
|
ARTIFACT="$artifact"
|
|
RELEASE_CHANNEL="$channel"
|
|
source "$workspace_root/script/linux/package_metadata"
|
|
|
|
[[ "$CHANNEL_SUFFIX" == "$expected_suffix" ]]
|
|
[[ "$PACKAGE_NAME" == "$expected_package" ]]
|
|
[[ "$GALAXY_AI_COMMAND_NAME" == "galaxy-ai$expected_suffix" ]]
|
|
[[ "$GALAXY_CONTROL_COMMAND_NAME" == "galaxyctrl$expected_suffix" ]]
|
|
}
|
|
|
|
assert_metadata app oss -oss galaxy-oss
|
|
assert_metadata cli oss -oss galaxy-ai-oss
|
|
|
|
assert_desktop_launcher() {
|
|
local channel="$1"
|
|
local app_name="$2"
|
|
local expected_launcher="$3"
|
|
local desktop_file
|
|
desktop_file="$workspace_root/app/channels/oss/com.galaxy.$app_name.desktop"
|
|
|
|
[[ -f "$desktop_file" ]]
|
|
grep -qx -- "Exec=$expected_launcher %U" "$desktop_file"
|
|
}
|
|
|
|
assert_desktop_launcher oss GalaxyOss galaxy-oss
|
|
|
|
grep -qx -- 'Package: @@PACKAGE_NAME@@' \
|
|
"$workspace_root/resources/linux/debian/app/control.template" \
|
|
"$workspace_root/resources/linux/debian/cli/control.template"
|
|
grep -qx -- 'Name: @@PACKAGE_NAME@@' \
|
|
"$workspace_root/resources/linux/rpm/app/warp.spec.template" \
|
|
"$workspace_root/resources/linux/rpm/cli/warp.spec.template"
|
|
grep -qx -- '%{_bindir}/@@GALAXY_AI_COMMAND_NAME@@' \
|
|
"$workspace_root/resources/linux/rpm/app/warp.spec.template"
|
|
grep -qx -- '%{_bindir}/@@GALAXY_CONTROL_COMMAND_NAME@@' \
|
|
"$workspace_root/resources/linux/rpm/app/warp.spec.template"
|
|
grep -qx -- 'pkgname=@@PACKAGE_NAME@@' \
|
|
"$workspace_root/resources/linux/arch/app/PKGBUILD.template" \
|
|
"$workspace_root/resources/linux/arch/cli/PKGBUILD.template"
|
|
|
|
temp_dir="$(mktemp -d)"
|
|
trap 'rm -rf "$temp_dir"' EXIT
|
|
fake_workspace="$temp_dir/workspace"
|
|
stage_dir="$temp_dir/stage"
|
|
mkdir -p \
|
|
"$fake_workspace/bin" \
|
|
"$fake_workspace/script/linux" \
|
|
"$fake_workspace/app/channels/oss" \
|
|
"$stage_dir"
|
|
ln -s \
|
|
"$workspace_root/script/linux/package_metadata" \
|
|
"$fake_workspace/script/linux/package_metadata"
|
|
cat > "$fake_workspace/script/prepare_bundled_resources" <<'EOF'
|
|
#!/usr/bin/env bash
|
|
exit 0
|
|
EOF
|
|
chmod +x "$fake_workspace/script/prepare_bundled_resources"
|
|
cat > "$fake_workspace/bin/install" <<'EOF'
|
|
#!/usr/bin/env bash
|
|
paths=()
|
|
for arg in "$@"; do
|
|
if [[ "$arg" != -* ]]; then
|
|
paths+=("$arg")
|
|
fi
|
|
done
|
|
mkdir -p "$(dirname "${paths[1]}")"
|
|
cp "${paths[0]}" "${paths[1]}"
|
|
EOF
|
|
chmod +x "$fake_workspace/bin/install"
|
|
cat > "$fake_workspace/app/channels/oss/com.galaxy.GalaxyOss.desktop" <<'EOF'
|
|
[Desktop Entry]
|
|
Name=GalaxyOss
|
|
Exec=galaxy-oss %U
|
|
EOF
|
|
cat > "$temp_dir/galaxy-oss" <<'EOF'
|
|
#!/usr/bin/env bash
|
|
exit 0
|
|
EOF
|
|
chmod +x "$temp_dir/galaxy-oss"
|
|
|
|
PATH="$fake_workspace/bin:$PATH" \
|
|
WORKSPACE_ROOT_DIR="$fake_workspace" \
|
|
RELEASE_CHANNEL=oss \
|
|
ARTIFACT=app \
|
|
BUNDLE_ID=com.galaxy.GalaxyOss \
|
|
EXECUTABLE_PATH="$temp_dir/galaxy-oss" \
|
|
BINARY_NAME=galaxy-oss \
|
|
OPT_DIR=/opt/warpdotdev/galaxy-oss \
|
|
CARGO_PROFILE=release \
|
|
"$workspace_root/script/linux/bundle_install" "$stage_dir"
|
|
|
|
grep -Fq 'exec -a "$0" "/opt/warpdotdev/galaxy-oss/galaxy-oss" "$@"' \
|
|
"$stage_dir/usr/bin/galaxy-ai-oss"
|
|
grep -Fq 'exec -a "$0" "/opt/warpdotdev/galaxy-oss/galaxy-oss" --galaxyctrl "$@"' \
|
|
"$stage_dir/usr/bin/galaxyctrl-oss"
|