Skip to content

Instantly share code, notes, and snippets.

@egabancho
Last active August 29, 2015 14:16
Show Gist options
  • Save egabancho/5b8125328c5898c0a0c6 to your computer and use it in GitHub Desktop.
Save egabancho/5b8125328c5898c0a0c6 to your computer and use it in GitHub Desktop.
WIP: Install Invenio master using virtualenv
#!/bin/bash
set -e
export WORKON_HOME=~/Work/envs
source /usr/local/bin/virtualenvwrapper.sh
#Create virtualenv and workdir
mkvirtualenv $1
cdvirtualenv
mkdir src; cd src
git-new-workdir ~/Work/src/invenio invenio master
#Clone Tibor's dev scripts
cdvirtualenv bin/
git clone https://github.com/tiborsimko/invenio-devscripts.git
ln -s ./invenio-devscripts/* .
unlink README.org
#Update activate script
cdvirtualenv bin/
cat <<EOT >> activate
MYSQL_ADMIN_USER=root
MYSQL_ADMIN_PASS=
export PIP_DOWNLOAD_CACHE=$HOME/.pip/cache
export PYVER=`python -c "import sys;print '%s.%s' % (sys.version_info[0],sys.version_info[1])"`
export CFG_INVENIO_SRCDIR=$HOME/Work/src/invenio
export CFG_INVENIO_PREFIX=$HOME/Work/envs/master
export CFG_INVENIO_USER=`whoami`
export [email protected]
export CFG_INVENIO_HOSTNAME=`hostname -s`
export CFG_INVENIO_DOMAINNAME=`domainname`
export CFG_INVENIO_PORT_HTTP=4000
export CFG_INVENIO_PORT_HTTPS=4000
# Database
export CFG_INVENIO_DATABASE_HOST=localhost
export CFG_INVENIO_DATABASE_NAME=$1
export CFG_INVENIO_DATABASE_USER=$1
export CFG_INVENIO_DATABASE_PASS="my123p\$ss"
# Debugging mail server
export CFG_MISCUTIL_SMTP_HOST=127.0.0.1
export CFG_MISCUTIL_SMTP_PORT=1025
#Odd stuff from libxml2
export C_INCLUDE_PATH=/usr/local/Cellar/libxml2/2.9.2/include/libxml2:$C_INCLUDE_PATH
alias mi="${CFG_INVENIO_PREFIX}/bin/invenio-make-install"
alias kw="${CFG_INVENIO_PREFIX}/bin/invenio-check-kwalitee --check-some"
EOT
workon master
cdvirtualenv src/invenio/
git pull
pip install -r requirements.txt
pip install invenio-devserver honcho
mysql -u $MYSQL_ADMIN_USER --password=$MYSQL_ADMIN_PASS -e "DROP DATABASE IF EXISTS $CFG_INVENIO_DATABASE_NAME"
mysql -u $MYSQL_ADMIN_USER --password=$MYSQL_ADMIN_PASS -h $CFG_INVENIO_DATABASE_HOST -e "CREATE DATABASE IF NOT EXISTS $CFG_INVENIO_DATABASE_NAME DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci"
mysql -u $MYSQL_ADMIN_USER --password=$MYSQL_ADMIN_PASS -h $CFG_INVENIO_DATABASE_HOST -e "GRANT ALL PRIVILEGES ON $CFG_INVENIO_DATABASE_NAME.* TO $CFG_INVENIO_DATABASE_USER@localhost IDENTIFIED BY '$CFG_INVENIO_DATABASE_PASS'"
mysqladmin -u $MYSQL_ADMIN_USER --password=$MYSQL_ADMIN_PASS flush-privileges
mysql.server restart
# If warning: macro 'AM_GNU_GETTEXT' not found in library appears
# In Mac OS X be sure to run brew link gettext --force
brew link gettext --force
aclocal && automake --add-missing && autoconf
./configure --prefix=$CFG_INVENIO_PREFIX --with-python=$CFG_INVENIO_PREFIX/bin/python
ln -s $CFG_INVENIO_PREFIX/lib/python/invenio $CFG_INVENIO_PREFIX/lib/python$PYVER/site-packages/invenio
make
make install
make install-mathjax-plugin
make install-jquery-plugins
make install-ckeditor-plugin
#brew unlink gettext
cdvirtualenv
cat <<EOT >> etc/invenio-local.conf
[Invenio]
CFG_BIBSCHED_PROCESS_USER = egabancho
CFG_DATABASE_HOST = localhost
CFG_DATABASE_PORT = 3306
CFG_DATABASE_NAME = master
CFG_DATABASE_USER = master
CFG_DATABASE_PASS = my123p\$ss
CFG_SITE_URL = http://localhost:4000
# For production environments, change http to https in next line
CFG_SITE_SECURE_URL = http://localhost:4000
CFG_SITE_ADMIN_EMAIL = [email protected]
CFG_SITE_SUPPORT_EMAIL = [email protected]
CFG_SITE_NAME = Atlantis Fictive Institute of Science
CFG_SITE_NAME_INTL_fr = Atlantis Institut des Sciences Fictives
EOT
inveniocfg --update-all
inveniocfg --create-tables
# Depending on mysql version an error can pop up
# ERROR 1101 (42000) at line 3328: BLOB/TEXT column 'setDescription' can't have a default value
# ERROR: failed execution of /Users/egabancho/Work/envs/master/bin/dbexec < /Users/egabancho/Work/envs/master/lib/sql/invenio/tabcreate.sql
inveniocfg --load-webstat-conf
inveniocfg --create-demo-site
inveniocfg --load-demo-records
# vim etc/Procfile
# web: serve
# cache: redis-server
#
# vim bin/master-start
# lsof -i :4000 | sed -n 2p | cut -d' ' -f3 | xargs kill -9
# honcho --procfile $VIRTUAL_ENV/etc/Procfile start
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment