Mercurial
annotate hg-web/dev.sh @ 268:f7b1188d5fb1
support repo rules Copilot bundle path
Match both +_repo_rules2+ and +http_archive+ Copilot CLI repository layouts during deployment and production startup.
Co-authored-by: Copilot <[email protected]>
| author | MrJuneJune <me@mrjunejune.com> |
|---|---|
| date | Fri, 07 Aug 2026 13:02:41 -0700 |
| parents | c5129452493e |
| children |
| rev | line source |
|---|---|
|
222
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
1 #!/usr/bin/env bash |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
2 set -euo pipefail |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
3 |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
4 if [[ -n "${RUNFILES_DIR:-}" ]]; then |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
5 source "$RUNFILES_DIR/bazel_tools/tools/bash/runfiles/runfiles.bash" |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
6 elif [[ -n "${RUNFILES_MANIFEST_FILE:-}" ]]; then |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
7 runfiles_library="$( |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
8 grep -sm1 '^bazel_tools/tools/bash/runfiles/runfiles.bash ' \ |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
9 "$RUNFILES_MANIFEST_FILE" | cut -d' ' -f2- |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
10 )" |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
11 source "$runfiles_library" |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
12 elif [[ -d "$0.runfiles" ]]; then |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
13 RUNFILES_DIR="$0.runfiles" |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
14 export RUNFILES_DIR |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
15 source "$RUNFILES_DIR/bazel_tools/tools/bash/runfiles/runfiles.bash" |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
16 elif [[ -f "$0.runfiles_manifest" ]]; then |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
17 RUNFILES_MANIFEST_FILE="$0.runfiles_manifest" |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
18 export RUNFILES_MANIFEST_FILE |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
19 runfiles_library="$( |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
20 grep -sm1 '^bazel_tools/tools/bash/runfiles/runfiles.bash ' \ |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
21 "$RUNFILES_MANIFEST_FILE" | cut -d' ' -f2- |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
22 )" |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
23 source "$runfiles_library" |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
24 else |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
25 echo "Bazel runfiles are unavailable." >&2 |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
26 exit 1 |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
27 fi |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
28 |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
29 workspace="${BUILD_WORKSPACE_DIRECTORY:-}" |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
30 if [[ -z "$workspace" || ! -d "$workspace/.hg" ]]; then |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
31 echo "Run this target from the Zenbu workspace." >&2 |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
32 exit 1 |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
33 fi |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
34 |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
35 server="$(rlocation _main/hg-web/hg_web_server)" |
|
249
c5129452493e
[deploy] Bundle Mercurial with hg-web
MrJuneJune <me@mrjunejune.com>
parents:
222
diff
changeset
|
36 hg_binary="$(rlocation _main/third_party/mercurial/runtime/bin/hg)" |
|
222
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
37 runfiles_workspace="$(dirname "$(dirname "$server")")" |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
38 hg_pid="" |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
39 server_pid="" |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
40 |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
41 cleanup() { |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
42 trap - EXIT INT TERM |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
43 for pid in "$server_pid" "$hg_pid"; do |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
44 if [[ -n "$pid" ]] && kill -0 "$pid" 2>/dev/null; then |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
45 kill "$pid" 2>/dev/null || true |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
46 fi |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
47 done |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
48 for pid in "$server_pid" "$hg_pid"; do |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
49 if [[ -n "$pid" ]]; then |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
50 wait "$pid" 2>/dev/null || true |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
51 fi |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
52 done |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
53 } |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
54 |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
55 trap cleanup EXIT |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
56 trap 'exit 130' INT TERM |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
57 |
|
249
c5129452493e
[deploy] Bundle Mercurial with hg-web
MrJuneJune <me@mrjunejune.com>
parents:
222
diff
changeset
|
58 HGRCPATH= "$hg_binary" \ |
|
c5129452493e
[deploy] Bundle Mercurial with hg-web
MrJuneJune <me@mrjunejune.com>
parents:
222
diff
changeset
|
59 --config "web.allow-push=" \ |
|
c5129452493e
[deploy] Bundle Mercurial with hg-web
MrJuneJune <me@mrjunejune.com>
parents:
222
diff
changeset
|
60 --config "web.deny-push=*" \ |
|
c5129452493e
[deploy] Bundle Mercurial with hg-web
MrJuneJune <me@mrjunejune.com>
parents:
222
diff
changeset
|
61 --repository "$workspace" serve \ |
|
222
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
62 --address 127.0.0.1 \ |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
63 --port 4444 \ |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
64 --accesslog - \ |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
65 --errorlog - & |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
66 hg_pid=$! |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
67 |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
68 ( |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
69 cd "$runfiles_workspace" |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
70 exec "$server" |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
71 ) & |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
72 server_pid=$! |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
73 |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
74 echo "hg-web: http://127.0.0.1:6970" |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
75 echo "Mercurial wire endpoint: http://127.0.0.1:6970/repo" |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
76 echo "Press Ctrl-C to stop both servers." |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
77 |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
78 set +e |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
79 wait -n "$hg_pid" "$server_pid" |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
80 status=$? |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
81 set -e |
|
a8d6435dc021
[hg-web] Run local stack through Bazel
MrJuneJune <me@mrjunejune.com>
parents:
diff
changeset
|
82 exit "$status" |