sage/build.sh
2025-10-26 21:37:40 +08:00

84 lines
1.9 KiB
Bash
Executable File

#!/usr/bin/env bash
# clone from git@git.opencomputing.cn/yumoqing/sage
# git clone https://git.opencomputing.cn/yumoqing/sage
cdir=$(pwd)
uname=$(id -un)
gname=$(id -gn)
sudo apt install redis-server
python3 -m venv py3
source py3/bin/activate
pip install -r requirements.txt
mkdir pkgs
cd pkgs
git clone https://git.opencomputing.cn/yumoqing/bricks
cd bricks/bricks
./build.sh
cd $cdir/wwwroot
ln -s $cdir/pkgs/bricks/dist $dir/wwwroot/bricks
for m in apppublic sqlor ahserver bricks-for-python xls2ddl
do
echo "install $m module..."
cd $cdir/pkgs
git clone https://git.opencomputing.cn/yumoqing/$m
cd $m
$cdir/py3/bin/pip install .
done
for m in appbase rbac accounting llmage platformbiz msp cpcc pf_pay filemgr dapi uapi rag charge pricing
do
echo "install $m module..."
cd $cdir/pkgs
git clone https://git.opencomputing.cn/yumoqing/$m
cd $m
$cdir/py3/bin/pip install .
if [ -d $cdir/pkgs/$m/models ];then
cd $cdir/pkgs/$m/models
xls2ddl mysql . > mysql.ddl.sql
mysql -h db -utest -ptest123 sage < mysql.ddl.sql
fi
if [ -d $cdir/pkgs/$m/json ];then
cd $cdir/pkgs/$m/json
./build.sh
fi
if [ -d $cdir/pkgs/$m/data ]; then
cd $cdir/pkgs/$m/data
dbloader $cdir sage data.xlsx
fi
rm $cdir/wwwroot/$m
ln -s $cdir/pkgs/$m/wwwroot $cdir/wwwroot/$m
done
mkdir $cdir/logs
cd $cdir
cat > $cdir/sage.service <<EOF
[Unit]
Wants=systemd-networkd.service
[Service]
User=$uname
Group=$gname
Type=forking
WorkingDirectory=$cdir
ExecStart=$cdir/start.sh
ExecStop=$cdir/stop.sh
StandardOutput=append:/var/log/sage/sage.log
StandardError=append:/var/log/sage/sage.log
SyslogIdentifier=sage
[Install]
WantedBy=multi-user.target
EOF
cat > $cdir/start.sh <<EOF
#!/usr/bin/bash
cd $cdir
$cdir/py3/bin/python $cdir/app/sage.py -p 9180 -w $cdir &
exit 0
EOF
cat > $cdir/stop.sh <<EOF
PID=\$(lsof -t -i:9180)
kill -9 \$PID
EOF
chmod +x $cdir/start.sh stop.sh
sudo mkdir /var/log/sage
sudo cp sage.service /etc/systemd/system
sudo systemctl enable sage
sudo systemctl restart sage