imca (2558B)
1 #!/bin/bash -v 2 3 mkdir -p ~/dox/dev/imca 4 cd ~/dox/dev/imca 5 6 # Clone repositories 7 [ -d flask_imca/.git ] || git clone git@gitlab.com:pablo-cardenas/flask_imca.git flask_imca 8 [ -d webpack-imca/.git ] || git clone git@gitlab.com:pablo-cardenas/webpack-imca.git webpack-imca 9 10 # pre-build webpack-imca 11 if [ ! -d webpack-imca/node_modules ]; then 12 pushd webpack-imca 13 npm install 14 popd 15 fi 16 [ -f webpack-imca/src/img/IMCA.woff ] || fontforge -c 'open("webpack-imca/src/img/IMCA.sfd").generate("webpack-imca/src/img/IMCA.woff")' 17 18 # pre-build flask_imca 19 mkdir -p flask_imca/src/instance 20 [ -f flask_imca/src/instance/config.py ] || scp pablo@pcardenasb.com:/srv/http/flask_imca/venv/var/flask_imca-instance/config.py flask_imca/src/instance/ 21 [ -d flask_imca/src/instance/media ] || scp -r pablo@pcardenasb.com:/srv/http/flask_imca/venv/var/flask_imca-instance/media flask_imca/src/instance/ 22 23 if [ ! -d flask_imca/venv ]; then 24 python -m venv flask_imca/venv 25 source flask_imca/venv/bin/activate 26 pip install flake8 black tox 27 pip install pytest 28 pip install mypy types-Markdown types-python-slugify sqlalchemy[mypy] 29 pip install pre-commit 30 pip install mysqlclient 31 pip install -e ./flask_imca 32 33 pybabel compile -d flask_imca/src/flask_imca/translations 34 deactivate 35 fi 36 37 # pre-commit 38 [ -f flask_imca/.git/hooks/pre-commit ] || { pushd flask_imca; ../flask_imca/venv/bin/pre-commit install; popd; } 39 [ -f webpack-imca/.git/hooks/pre-commit ] || { pushd webpack-imca; ../flask_imca/venv/bin/pre-commit install; popd; } 40 41 echo $PWD 42 if ! tmux has-session -t imca; then 43 tmux new-session -s imca -n main -d 44 45 tmux split-window -d -h -t imca:0.0 -c flask_imca 46 tmux split-window -d -v -t imca:0.1 -c webpack-imca 47 48 tmux send-keys -t imca:0.0 'source venv/bin/activate' C-m 49 tmux send-keys -t imca:0.0 'vim -S ${XDG_CONFIG_HOME}/vim/session/imca.vim' C-m 50 51 tmux send-keys -t imca:0.1 'source venv/bin/activate' C-m 52 command -v firefox >/dev/null 2>&1 && tmux send-keys -t imca:0.1 'sleep 6s && firefox 127.0.0.1:5000 &' C-m 53 tmux send-keys -t imca:0.1 'flask --app flask_imca run --debug --host 0.0.0.0' C-m 54 55 tmux send-keys -t imca:0.2 'npm run watch' C-m 56 57 tmux new-window -d -c flask_imca -n venv -t imca:1 58 tmux send-keys -t imca:1.0 'source venv/bin/activate' C-m 59 60 tmux new-window -d -c flask_imca/src/instance -n instance -t imca:2 61 62 tmux new-window -d -c ~ -n ssh -t imca:3 63 tmux send-keys -t imca:3.0 'TERM=xterm-256color ssh imca.edu.pe' 64 65 tmux new-window -d -c ~/.local/bin -n '~/.local/bin' -t imca:4 66 tmux send-keys -t imca:4.0 'vim imca' C-m 67 fi 68 69 tmux attach -t imca