#!/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"