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.

52 lines
1.2 KiB

#!/bin/bash
NAME="git-auto-deploy"
GAD_UID="git-auto-deploy"
GAD_GID="git-auto-deploy"
HOME_DIR="/etc/$NAME"
DATA_DIR="/var/lib/$NAME"
PID_DIR="/var/run/$NAME"
PID_FILE="$PID_DIR/$NAME.pid"
# Add user and group
adduser --quiet --system --home $HOME_DIR --no-create-home --ingroup nogroup --disabled-password $GAD_UID
addgroup --system $GAD_GID
adduser $GAD_UID $GAD_GID
# Create home dir
mkdir -p $HOME_DIR
mkdir -p $HOME_DIR/.ssh
touch $HOME_DIR/.ssh/known_hosts
# Generate SSL certificate if openssl is installed
if [ -x "$(command -v openssl)" ]; then
openssl req -new -x509 -keyout $HOME_DIR/cert.pem -out $HOME_DIR/cert.pem -days 365 -nodes -subj "/C=/ST=/L=/O=Git Auto Deploy/OU=/CN=localhost"
fi
# Set permissions on home dirßß
chown -R $GAD_UID:$GAD_GID $HOME_DIR
chmod -R 750 $HOME_DIR
# Create log file
touch /var/log/$NAME.log
chown $GAD_UID:$GAD_GID /var/log/$NAME.log
chmod 750 /var/log/$NAME.log
# Create data directory
if [ ! -d "$DATA_DIR" ]; then
mkdir -p $DATA_DIR
chown -R $GAD_UID:$GAD_GID $DATA_DIR
chmod 750 $DATA_DIR
fi
# Create pid file
if [ ! -d "$PID_DIR" ]; then
mkdir $PID_DIR
touch $PID_FILE
chown $GAD_UID:$GAD_GID $PID_DIR $PID_FILE
chmod 750 $PID_FILE
fi
update-rc.d $NAME defaults