fix: sync launcher rules for source checkout
This commit is contained in:
53
tests/browser_runtime_entrypoint_test.sh
Normal file
53
tests/browser_runtime_entrypoint_test.sh
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
TEST_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
|
CRATE_DIR="$(cd -- "${TEST_DIR}/.." && pwd)"
|
||||||
|
TMP_DIR="$(mktemp -d)"
|
||||||
|
trap 'rm -rf "${TMP_DIR}"' EXIT
|
||||||
|
|
||||||
|
FAKE_CRATE_DIR="${TMP_DIR}/claw"
|
||||||
|
mkdir -p \
|
||||||
|
"${FAKE_CRATE_DIR}/tools/browser_runtime" \
|
||||||
|
"${FAKE_CRATE_DIR}/target/debug/resources" \
|
||||||
|
"${FAKE_CRATE_DIR}/resources" \
|
||||||
|
"${FAKE_CRATE_DIR}/src" \
|
||||||
|
"${FAKE_CRATE_DIR}/third_party/zeroclaw/src" \
|
||||||
|
"${TMP_DIR}/skill_lib"
|
||||||
|
|
||||||
|
cp "${CRATE_DIR}/tools/browser_runtime/sgclaw_browser_entry.sh" \
|
||||||
|
"${FAKE_CRATE_DIR}/tools/browser_runtime/sgclaw_browser_entry.sh"
|
||||||
|
chmod +x "${FAKE_CRATE_DIR}/tools/browser_runtime/sgclaw_browser_entry.sh"
|
||||||
|
|
||||||
|
cat > "${FAKE_CRATE_DIR}/Cargo.toml" <<'EOF'
|
||||||
|
[package]
|
||||||
|
name = "sgclaw"
|
||||||
|
version = "0.1.0"
|
||||||
|
edition = "2021"
|
||||||
|
EOF
|
||||||
|
|
||||||
|
cat > "${FAKE_CRATE_DIR}/Cargo.lock" <<'EOF'
|
||||||
|
# fake lockfile for launcher test
|
||||||
|
EOF
|
||||||
|
|
||||||
|
cat > "${FAKE_CRATE_DIR}/target/debug/resources/rules.json" <<'EOF'
|
||||||
|
{"version":"1.0","domains":{"allowed":["www.zhihu.com"]},"pipe_actions":{"allowed":["click","type","navigate","getText"],"blocked":[]}}
|
||||||
|
EOF
|
||||||
|
|
||||||
|
sleep 1
|
||||||
|
|
||||||
|
cat > "${FAKE_CRATE_DIR}/resources/rules.json" <<'EOF'
|
||||||
|
{"version":"1.0","domains":{"allowed":["www.zhihu.com"]},"pipe_actions":{"allowed":["click","type","navigate","getText","eval"],"blocked":[]}}
|
||||||
|
EOF
|
||||||
|
|
||||||
|
cat > "${FAKE_CRATE_DIR}/target/debug/sgclaw" <<'EOF'
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
set -euo pipefail
|
||||||
|
SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
|
grep -q '"eval"' "${SCRIPT_DIR}/resources/rules.json"
|
||||||
|
EOF
|
||||||
|
chmod +x "${FAKE_CRATE_DIR}/target/debug/sgclaw"
|
||||||
|
|
||||||
|
"${FAKE_CRATE_DIR}/tools/browser_runtime/sgclaw_browser_entry.sh"
|
||||||
|
|
||||||
|
grep -q '"eval"' "${FAKE_CRATE_DIR}/target/debug/resources/rules.json"
|
||||||
@@ -5,6 +5,8 @@ SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
|
|||||||
CRATE_DIR="$(cd -- "${SCRIPT_DIR}/../.." && pwd)"
|
CRATE_DIR="$(cd -- "${SCRIPT_DIR}/../.." && pwd)"
|
||||||
BIN_PATH="${CRATE_DIR}/target/debug/sgclaw"
|
BIN_PATH="${CRATE_DIR}/target/debug/sgclaw"
|
||||||
MANIFEST_PATH="${CRATE_DIR}/Cargo.toml"
|
MANIFEST_PATH="${CRATE_DIR}/Cargo.toml"
|
||||||
|
RULES_SRC_PATH="${CRATE_DIR}/resources/rules.json"
|
||||||
|
RULES_DEST_PATH="${CRATE_DIR}/target/debug/resources/rules.json"
|
||||||
|
|
||||||
needs_build=0
|
needs_build=0
|
||||||
if [[ ! -x "${BIN_PATH}" ]]; then
|
if [[ ! -x "${BIN_PATH}" ]]; then
|
||||||
@@ -25,4 +27,9 @@ if [[ "${needs_build}" -eq 1 ]]; then
|
|||||||
cargo build --manifest-path "${MANIFEST_PATH}" --bin sgclaw
|
cargo build --manifest-path "${MANIFEST_PATH}" --bin sgclaw
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [[ ! -f "${RULES_DEST_PATH}" || "${RULES_SRC_PATH}" -nt "${RULES_DEST_PATH}" ]]; then
|
||||||
|
mkdir -p "$(dirname -- "${RULES_DEST_PATH}")"
|
||||||
|
cp "${RULES_SRC_PATH}" "${RULES_DEST_PATH}"
|
||||||
|
fi
|
||||||
|
|
||||||
exec "${BIN_PATH}" "$@"
|
exec "${BIN_PATH}" "$@"
|
||||||
|
|||||||
Reference in New Issue
Block a user