#!/bin/bash set -e QUIET=false #SFLOG="/start.log" #print timestamp timestamp() { date +"%Y-%m-%d %T" } #screen/file logger sflog() { #if $1 is not null if [ ! -z ${1+x} ]; then message=$1 else #exit function return 1; fi #if $QUIET is not true if ! $($QUIET); then echo "${message}" fi #if $SFLOG is not null if [ ! -z ${SFLOG+x} ]; then #if $2 is regular file or does not exist if [ -f ${SFLOG} ] || [ ! -e ${SFLOG} ]; then echo "$(timestamp) ${message}" >> ${SFLOG} fi fi } #start services function startc() { sflog "Services for container are being started..." /etc/init.d/fcgiwrap start > /dev/null /etc/init.d/nginx start > /dev/null sflog "The container services have started..." } #stop services function stopc() { sflog "Services for container are being stopped..." /etc/init.d/nginx stop > /dev/null /etc/init.d/fcgiwrap stop > /dev/null sflog "Services for container have successfully stopped. Exiting." exit 0 } #trap "docker stop " and shuts services down cleanly trap "(stopc)" TERM INT #startup #test for ENV varibale $FQDN if [ ! -z ${FQDN+x} ]; then sflog "FQDN is set to ${FQDN}" else export FQDN=dehub sflog "FQDN is set to ${FQDN}" fi #modify config files with fqdn sed -i "s,MYSERVER,${FQDN},g" /etc/nginx/nginx.conf &> /dev/null # create the individual repo directories while [ ! -z "$1" ]; do dir="/repos/$1"; if [ ! -d "$dir" ]; then echo "Initializing repo $1" mkdir "$dir" git init --bare "$dir" git config -f "$dir/config" http.receivepack true git config -f "$dir/config" receive.denyNonFastForwards true git symbolic-ref HEAD refs/heads/main chown -R git:git "$dir" fi mkdir -p "$dir/hooks" cp /pre-receive "$dir/hooks/" chmod +x "$dir/hooks/pre-receive" shift done #start init.d services startc #pause script to keep container running... sflog "Services for container successfully started." sflog "Dumping logs" tail -f /var/log/nginx/*.log