94 lines
2.8 KiB
Bash
Executable file
94 lines
2.8 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
echo "Gathering info ..."
|
|
MYSQLDIR="$(mysqld --verbose --help 2>/dev/null | awk '$1 == "datadir" { print $2; exit }')"
|
|
|
|
echo "Checking if MySQL base data exists ..."
|
|
if [ ! -d $MYSQLDIR/mysql ]; then
|
|
echo "Re-installing MySQL ..."
|
|
apt-get update && apt-get install --reinstall mysql-server
|
|
fi
|
|
|
|
|
|
echo "Checking if MySQL is running ..."
|
|
if ! /etc/init.d/mysql status; then
|
|
echo "Starting mysql ..."
|
|
/etc/init.d/mysql start
|
|
fi
|
|
|
|
echo "Checking if the IETF database exists at $MYSQLDIR ..."
|
|
if [ ! -d $MYSQLDIR/ietf_utf8 ]; then
|
|
ls -l $MYSQLDIR
|
|
|
|
echo "Creating database ..."
|
|
mysqladmin -u root --default-character-set=utf8 create ietf_utf8
|
|
|
|
echo "Setting up permissions ..."
|
|
mysql -u root ietf_utf8 <<< "GRANT ALL PRIVILEGES ON ietf_utf8.* TO django@localhost IDENTIFIED BY 'RkTkDPFnKpko'; FLUSH PRIVILEGES;"
|
|
|
|
echo "Fetching database ..."
|
|
DUMPDIR=/home/$USER/$DATADIR
|
|
wget -N -P $DUMPDIR http://www.ietf.org/lib/dt/sprint/ietf_utf8.sql.gz
|
|
|
|
echo "Loading database ..."
|
|
gunzip < $DUMPDIR/ietf_utf8.sql.gz \
|
|
| pv --progress --bytes --rate --eta --cursor --size $(gzip --list --quiet $DUMPDIR/ietf_utf8.sql.gz | awk '{ print $2 }') \
|
|
| sed -e 's/ENGINE=MyISAM/ENGINE=InnoDB/' \
|
|
| mysql --user=django --password=RkTkDPFnKpko -s -f ietf_utf8 \
|
|
&& rm /tmp/ietf_utf8.sql.gz
|
|
|
|
fi
|
|
|
|
if ! id -u "$USER" &> /dev/null; then
|
|
echo "Creating user '$USER' ..."
|
|
useradd -ms /bin/bash $USER
|
|
fi
|
|
|
|
if [ ! -d /opt/home/$USER ]; then
|
|
echo "Setting up python virtualenv at /opt/home/$USER ..."
|
|
mkdir -p /opt/home/$USER
|
|
chown $USER /opt/home/$USER
|
|
mkdir /opt/home/$USER/datatracker
|
|
virtualenv /opt/home/$USER/datatracker
|
|
fi
|
|
|
|
echo "Activating virtual python environment"
|
|
cat /opt/home/$USER/datatracker/bin/activate >> /etc/bash.bashrc
|
|
. /opt/home/$USER/datatracker/bin/activate
|
|
|
|
|
|
if [ ! -d /opt/home/$USER/datatracker/lib/python2.7/site-packages/django ]; then
|
|
echo "Installing requirements (based on trunk)"
|
|
pip install -r /home/django/src/trunk/requirements.txt
|
|
fi
|
|
|
|
if [ ! -f /opt/home/$USER/datatracker/lib/site-python/settings_local.py ]; then
|
|
echo "Setting up a default settings_local.py"
|
|
mkdir -p /opt/home/$USER/datatracker/lib/site-python/
|
|
cp /home/django/src/trunk/settings_local.py /opt/home/$USER/datatracker/lib/site-python/
|
|
fi
|
|
|
|
echo "Done."
|
|
|
|
FLAG1=/opt/home/$USER/.docker-init-flag-1
|
|
if [ ! -f $FLAG1 ]; then
|
|
touch $FLAG1
|
|
cat <<-EOT
|
|
|
|
******************************************************************************
|
|
|
|
You should now cd to your svn working directory and update the datatracker
|
|
prerequisites according to the requirements given in 'requirements.txt':
|
|
|
|
$ pip install -r requirements.txt
|
|
|
|
Happy coding!
|
|
|
|
******************************************************************************
|
|
EOT
|
|
fi
|
|
|
|
chown -R $USER /opt/home/$USER
|
|
cd /home/$USER
|
|
su $USER
|