#!/usr/bin/env bash # call by install.sh echo "resolve link" PRG="$0" while [ -h "$PRG" ] ; do lh=$(ls -ld "$PRG") lk=$(expr "$lh" : '.*-> \(.*\)$') if expr "$lk" : '/.*' > /dev/null; then PRG="$lk" else PRG=$(dirname "$PRG")"/$lk" fi done ROOT=$(dirname $PRG) if [[ "$ROOT" != /* ]]; then ROOT=$(cd $ROOT; pwd) fi echo "ROOT = $ROOT" PYTHON_EXE=python3 PYTHON_OPTIONS=-OO FLAG_PYTHON=${FLAG_PYTHON:pyo} FLAG_DJANGO=${FLAG_DJANGO:django} ./run-setup-python.sh $FLAG_PYTHON [ $? -eq 0 ] || exit 1 env DOCUMENT=$DOCUMENT \ ./run-setup-django.sh $FLAG_DJANGO [ $? -eq 0 ] || exit 1 TARGET=/usr/local/share/BPS STORAGE_PATH=/media/BPS echo "modify run-data-server.sh file" sed -e "s|^PYTHON_EXE=.*|PYTHON_EXE=$PYTHON_EXE|" \ -e "s|^PYTHON_OPTIONS=.*|PYTHON_OPTIONS=$PYTHON_OPTIONS|" \ -e "s|^STORAGE_PATH=.*|STORAGE_PATH=$STORAGE_PATH|" \ -i $ROOT/bin/run-data-server.sh echo "modify led.sh file" sed -e "s|^PYTHON_EXE=.*|PYTHON_EXE=$PYTHON_EXE|" \ -i $ROOT/bin/led.sh echo "modify run-django-server.sh" sed -e "s|^PYTHON_EXE=.*|PYTHON_EXE=$PYTHON_EXE|" \ -e "s|^PYTHON_OPTIONS=.*|PYTHON_OPTIONS=$PYTHON_OPTIONS|" \ -i $ROOT/bin/run-django-server.sh echo "backup database" if [ -f $TARGET/django/db.sqlite3 ]; then cp $TARGET/django/db.sqlite3 $ROOT/django/ fi echo "move code to $TARGET" sudo mkdir -p $TARGET/ sudo rm -rf $TARGET/* sudo cp -r $ROOT/django/ $TARGET/ if [ $FLAG_PYTHON = "pyo" ]; then # pyo sudo mkdir -p $TARGET/python/ sudo cp -r $ROOT/python/biopro/ $TARGET/python/ else # pyc sudo mkdir -p $TARGET/python/biopro/util sudo cp $ROOT/python/biopro/text.py $TARGET/python/biopro/ sudo cp $ROOT/python/biopro/controller.py $TARGET/python/biopro/ sudo cp $ROOT/python/biopro/util/json.py $TARGET/python/biopro/util/ sudo cp $ROOT/python/biopro/util/socket.py $TARGET/python/biopro/util/ sudo cp $ROOT/python/biopro/util/text.py $TARGET/python/biopro/util/ sudo cp $ROOT/python/biopro/util/sys.py $TARGET/python/biopro/util/ sudo cp $ROOT/python/biopro/util/inet.py $TARGET/python/biopro/util/ sudo cp -r $ROOT/python/biopro/database $TARGET/python/biopro/ sudo cp -r $ROOT/PyInstaller/dist/biopro.main $TARGET/lib/ fi sudo cp -r $ROOT/python/res/ $TARGET/python/ sudo cp $ROOT/bin/run-data-server.sh $TARGET/run-data-server.sh sudo cp $ROOT/bin/led.sh $TARGET/led.sh sudo cp $ROOT/bin/run-django-server.sh $TARGET/run-django-server.sh echo "move config to /etc/BPS" sudo mkdir -p /etc/BPS if [ -f /etc/BPS/default.config ]; then echo 'copy config to default.config.new' sudo cp etc/BPS/default.config /etc/BPS/default.config.new else sudo cp etc/BPS/default.config /etc/BPS/default.config fi echo "migrate database" PYTHON_EXE="env PYTHONPATH=$TARGET/python SECRET_KEY=0 python3" sudo $PYTHON_EXE $TARGET/django/manage.py migrate sudo rm -rf $TARGET/django/__pycache__ # XXX Can biopro/database (used by django) be removed? #if [ $FLAG_PYTHON = "pyc" ]; then #sudo rm -rf $TARGET/python/biopro/database #fi echo "create export cache directory" sudo mkdir -p $STORAGE_PATH sudo chown $USER:$USER $STORAGE_PATH sudo rm -rf $TARGET/django/res/static/export sudo ln -sf $STORAGE_PATH/export $TARGET/django/res/static/export echo "create symbolic link under /usr/local/bin" sudo mkdir -p /usr/local/bin sudo ln -sf $TARGET/run-data-server.sh /usr/local/bin/run-data-server sudo ln -sf $TARGET/run-django-server.sh /usr/local/bin/run-django-server sudo ln -sf $TARGET/led.sh /usr/local/bin/led echo "install script on boot" sudo cp $ROOT/etc/init.d/bps-service /etc/init.d/bps-service sudo chmod 755 /etc/init.d/bps-service