rustforge
RustForge: the read-only, cgit-style git web host serving this site
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | #!/usr/bin/env bash
# Mirror local working repos to the forge server, WITHOUT touching them.
#
# The working repos under /workspace have a strict "no remotes, no pushes"
# rule (other agents work in them). So instead of pushing, this script:
#
# 1. keeps a private bare mirror of each repo in $MIRROR_DIR
# (git clone --mirror the first time, git remote update afterwards;
# the only remote that ever exists is inside the mirror itself),
# 2. rsyncs that bare mirror over ssh to /srv/git/<name>.git on the server,
# 3. fixes ownership there to the `forge` user.
#
# Safe to run as often as you like (idempotent). Usage:
# scripts/sync-mirrors.sh # sync every repo in the list below
# scripts/sync-mirrors.sh rust-kernel # sync just one
SSH_HOST=""
SSH_PORT=""
MIRROR_DIR=""
REMOTE_ROOT=""
# name=source-path. Missing sources are skipped with a note.
REPOS=(
"rust-kernel=/workspace/rust-kernel"
"rust-githost=/workspace/rust-githost"
"rustbelt-os=/workspace/rustbelt-os"
)
SSH=(ssh -o BatchMode=yes -p "")
only=""
for; do
name=""
src=""
&& continue
done
|