service-gitit/docker-entrypoint.sh

73 lines
1.6 KiB
Bash
Executable file

#!/bin/sh
set -e
set -u
GITIT_USER_EMAIL=${GITIT_USER_EMAIL:-}
GITIT_USER_NAME=${GITIT_USER_NAME:-}
GITIT_REMOTE_REPOSITORY=${GITIT_REMOTE_REPOSITORY:-}
GITIT_REMOTE_DOMAIN=${GITIT_REMOTE_DOMAIN:-}
if [ ! -f /data/gitit.conf ]; then
echo "Building config for gitit"
gitit --print-default-config > /data/gitit.conf
sed -i 's|default-extension: page|default-extension: md|' /data/gitit.conf
fi
## Check existing variables
if [ -z "$GITIT_USER_EMAIL" ]; then
>&2 echo "ERROR: Environment variable GITIT_USER_EMAIL not defined"
exit 1
fi
if [ -z "$GITIT_USER_NAME" ]; then
>&2 echo "ERROR: Environment variable GITIT_USER_NAME not defined"
exit 1
fi
# Configure GIT
CUR="$(pwd)"
mkdir -p /data/wikidata
cd /data/wikidata
if [ ! -d /data/wikidata/.git ]; then
git init
fi
git config diff.renames false
git config --global user.email "$GITIT_USER_EMAIL"
git config --global user.name "$GITIT_USER_NAME"
if [ -n "$GITIT_REMOTE_REPOSITORY" ]; then
if [ -z "$GITIT_REMOTE_DOMAIN" ]; then
>&2 echo "ERROR: Environment variable GITIT_REMOTE_DOMAIN not defined"
exit 1
fi
mkdir -p /data/ssh
if [ ! -f /data/ssh/mirror_rsa ]; then
>&2 echo "ERROR: SSH Key file /data/ssh/mirror_rsa is missing."
>&2 echo " Please create it with 'ssh-keygen -f /data/ssh/mirror_rsa' ."
exit 1
fi
git remote remove origin
git remote add origin "$GITIT_REMOTE_REPOSITORY"
mkdir -p /root/.ssh
cat > /root/.ssh/config <<-MARK
Host github.com
User git
IdentityFile /data/ssh/mirror_rsa
MARK
chmod 600 /root/.ssh/config
chmod 700 /root/.ssh
fi
cd "$CUR"
if [ "$1" = 'gitit' ]; then
exec gitit "$@"
fi
exec "$@"