diff options
Diffstat (limited to 'cgit-chroot')
-rwxr-xr-x | cgit-chroot | 77 |
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 |