Files
2021-12-20 14:52:55 +08:00

121 lines
3.9 KiB
Bash
Executable File

#!/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