Files
galaxy/script/linux/test_package_metadata
T

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"