aboutsummaryrefslogtreecommitdiffstats
path: root/cgit-chroot
diff options
context:
space:
mode:
Diffstat (limited to 'cgit-chroot')
-rwxr-xr-xcgit-chroot77
1 files changed, 0 insertions, 77 deletions
diff --git a/cgit-chroot b/cgit-chroot
deleted file mode 100755
index 5d229db..0000000
--- a/cgit-chroot
+++ /dev/null
@@ -1,77 +0,0 @@
-#!/bin/sh
-
-set -e
-
-CGIT_CHROOT=${CGIT_CHROOT:-/srv/cgit}
-CGIT_GIT_ROOT=${CGIT_GIT_ROOT:-/srv/git}
-
-usage() {
- printf 'usage: cgit-chroot setup|teardown\n' >&2
- exit 1
-}
-
-log() {
- printf ' %s %s\n' "$1" "$2"
-}
-
-ladd() {
- log + "$1"
-}
-
-ldel() {
- log - "$1"
-}
-
-remove_prefix() {
- printf "%s" "${1#$CGIT_CHROOT/*}"
-}
-
-bind_mount() {
- mkdir "$2"
- mount --rbind "$1" "$2"
- mount --make-rslave "$2"
- ladd "$(remove_prefix "$2")"
-}
-
-bind_umount() {
- umount "$i"
- rmdir "$i"
- ldel "$(remove_prefix "$i")"
-}
-
-setup() {
- mkdir "$CGIT_CHROOT"/dev
- mknod "$CGIT_CHROOT"/dev/null c 1 3
- chmod 666 "$CGIT_CHROOT"/dev/null
-
- for i in "$CGIT_CHROOT"/instances/*; do
- test -d "$i" || continue
- user=$(basename "$i")
- id -ru "$user" >/dev/null || continue
-
- git_repo_dir="${CGIT_GIT_ROOT}/$user"
- test -d "$git_repo_dir" || continue
-
- instance_repo_dir="$CGIT_CHROOT"/instances/$user/repos
-
- bind_mount "$git_repo_dir" "$instance_repo_dir"
- chmod 0701 "$instance_repo_dir"
- done
-}
-
-teardown() {
- rm "$CGIT_CHROOT"/dev/null
- rmdir "$CGIT_CHROOT"/dev
-
- for i in "$CGIT_CHROOT"/instances/*/repos; do
- bind_umount "$i"
- done
-}
-
-test $# -eq 1 || usage
-
-case $1 in
- setup) setup;;
- teardown) teardown;;
- *) usage;;
-esac