You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

101 lines
1.8 KiB

#!/bin/bash
set -eux # -x for verbose logging to juju debug-log
## 0k git remote path
GIT_0K_BASE=${GIT_0K_BASE:-"0k-ro:/var/git"}
## 0k git remote options
GIT_0K_CLONE_OPTIONS=${GIT_0K_CLONE_OPTIONS:-""}
apt-get install -y kal-shlib-common
apt-get install -y bzr
mkdir -p /var/git
mkdir -p /srv/git-bzr-mirrors
mkdir -p /opt/apps
##
## install git-hooks
##
(
cd /opt/apps &&
git clone "$GIT_0K_BASE"/0k/git-hooks.git &&
git config --system git-hooks.install-dir /opt/apps/git-hooks &&
ln -sf /opt/apps/git-hooks/bin/git-hooks /usr/lib/git-core/git-hooks
)
##
## bzr-fastimport
##
(
cd /opt/apps &&
bzr clone lp:bzr-fastimport &&
mkdir /root/.bazaar/plugins -p &&
ln -sf /opt/apps/bzr-fastimport /root/.bazaar/plugins/fastimport
)
## This patch will correct a nasty exception documented here:
## https://bugs.launchpad.net/bzr/+bug/541626
(cd /opt/apps/bzr-fastimport &&
patch -p0 ) < src/patch/bzr-fastimport/btree-except.patch
##
## python-fastimport
##
(
cd /opt/apps &&
bzr clone lp:python-fastimport &&
cd python-fastimport &&
python setup.py install
)
##
## git-bzr-ng
##
(
cd /opt/apps &&
git clone https://github.com/termie/git-bzr-ng.git &&
ln -sf /opt/apps/git-bzr-ng/git-bzr /usr/lib/git-core/
)
##
## git-bzr-syncs
##
(
cd /opt/apps &&
git clone "$GIT_0K_BASE"/0k/git-bzr-syncs.git &&
ln -sf /opt/apps/git-bzr-syncs/bin/git-bzr-syncs /usr/sbin/git-bzr-syncs
)
cp src/etc/cron.daily/git-bzr-syncs /etc/cron.daily/git-bzr-syncs
##
## Setup password-less access for other LXC
##
LXC_USER=lxc-user
LXC_USER_HOME=/var/lib/$LXC_USER
groupadd -r git-users &&
adduser --system --home=$LXC_USER_HOME --shell /bin/bash --ingroup=git-users $LXC_USER &&
mkdir $LXC_USER_HOME/.ssh -p &&
cat src/etc/ssh/lxc_git_access_id_rsa.pub >> $LXC_USER_HOME/.ssh/authorized_keys &&
chown lxc-user $LXC_USER_HOME/.ssh -R