From 48655b4d5ab4ce7e61b6033de3e090716250971d Mon Sep 17 00:00:00 2001 From: Mee Date: Tue, 23 Apr 2019 22:33:37 +0200 Subject: [PATCH 1/3] =?UTF-8?q?Nov=C3=BD=20Makefile.=20Bude=20vy=C5=BEadov?= =?UTF-8?q?at=20zm=C4=9Bny=20uWSGi=20configu.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 ++ Makefile | 93 ++++++++++++++++++++++++++---------------------------- manage.py | 2 +- 3 files changed, 48 insertions(+), 49 deletions(-) diff --git a/.gitignore b/.gitignore index a61902a0..ee766b37 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,6 @@ # virtual env +/env/ + /bin/ /include/ /lib/ diff --git a/Makefile b/Makefile index 51bbdfad..94b59485 100644 --- a/Makefile +++ b/Makefile @@ -1,68 +1,65 @@ -.PHONY: clean_env init_env clean_virtualenv install_packages clean install run all schema_seminar.pdf schema_all.pdf sync_test_media sync_test_db sync_test sync_local_media sync_local_db sync_local -PYTHON=python2.7 -VE_VER=16.0.0 -LOCAL_PYTHON=bin/python +PYTHON := python3 +VENV := python3 -m venv +# Všechny flagy, které se s venvem/virtualenvem/... mají volat patří sem. Volá se "${VENV} cesta" +VENV_PATH := env +# Musí být definovaná, i kdyby to měla být "." -all: install - -clean: clean_env - -veryclean: clean clean_virtualenv - -install: virtualenv bin/python install_packages - - -# phony, but depends on file -make_env: ${LOCAL_PYTHON} +.PHONY: all venv_check clean install install_web install_venv clean_venv clean_schema run test deploy_test deploy_prod sync_test_media sync_test_db sync_test sync_local_media sync_local_db sync_local -# phony, but fast repeated execution -install_packages: make_env - bin/pip install -r requirements.txt --upgrade +# activate by mělo být předpokladem ke všemu, co volá webový python (i.e. python nasazený do ${VENV}u kvůli webu, např. manage.py) +all: install -# phony -clean_env: - rm -rf bin/ include/ lib/ local/ share/ +venv_check: + @# Pokud org nemá zapnutý venv, poradíme mu, aby si ho zapnul a spadneme. Jinak nic. + @expr $$PATH : ".*:*$(shell pwd)/${VENV_PATH}/bin" > /dev/null && exit 0 || echo "Není zapnutý env, spusť \". ${VENV_PATH}/bin/activate\"." && false + +clean: clean_venv clean_schema + +install: + @# Just echo: + # Install je trochu magický: + # Spusť následující posloupnost příkazů: + # make install_venv + # . ${VENV_PATH}/bin/activate + # make install_web + +install_web: venv_check + @# venv může být příšerně starý, takže nejdříve upgradujeme venvové věci + echo $$PATH + pip install --upgrade pip + pip install --upgrade setuptools + # Instalace závislostí webu + pip install -r requirements.txt --upgrade + +install_venv: + ${VENV} ${VENV_PATH} + +clean_venv: + # Možná není 100% foolproof... + @test ! ${VENV_PATH} = . || ! echo "Smaž si prosím venv sám, nebudu mazat celý web" + rm -rfv ${VENV_PATH} rm -f pip-selfcheck.json +clean_schema: rm -f schema_seminar.pdf schema_all.pdf -# binary name representing set-up env -${LOCAL_PYTHON}: virtualenv - ${PYTHON} virtualenv/virtualenv.py . - - - -# directory name -virtualenv: - # I could not find a link without hash anymore. This will probably break in - # the future. - curl -O https://files.pythonhosted.org/packages/33/bc/fa0b5347139cd9564f0d44ebd2b147ac97c36b2403943dbee8a25fd74012/virtualenv-16.0.0.tar.gz - tar xvfz virtualenv-${VE_VER}.tar.gz - mv -T virtualenv-${VE_VER} virtualenv - rm virtualenv-${VE_VER}.tar.gz - -# phony -clean_virtualenv: - rm -rf virtualenv/ - rm -rf virtualenv-*.tar.gz - -run: +run: venv_check ./manage.py runserver -test: +test: venv_check ./manage.py test -v2 seminar mamweb # DB schemata schema: schema_seminar.pdf schema_all.pdf -schema_seminar.pdf: +schema_seminar.pdf: venv_check ./manage.py graph_models seminar | dot -Tpdf > schema_seminar.pdf -schema_all.pdf: +schema_all.pdf: venv_check ./manage.py graph_models -a -g | dot -Tpdf > schema_all.pdf # Deploy to current *mamweb-test* directory -deploy_test: +deploy_test: venv_check @if [ ${USER} != "mam-web" ]; then echo "Only possible by user mam-web"; exit 1; fi @if [ `pwd` != "/akce/mam/www/mamweb-test" ]; then echo "Only possible in /akce/mam/www/mamweb-test"; exit 1; fi @echo "Installing version from origin/test ..." @@ -78,7 +75,7 @@ deploy_test: @echo Done. # Deploy to current *mamweb-prod* directory -deploy_prod: +deploy_prod: venv_check @if [ ${USER} != "mam-web" ]; then echo "Only possible by user mam-web"; exit 1; fi @if [ `pwd` != "/akce/mam/www/mamweb-prod" ]; then echo "Only possible in /akce/mam/www/mamweb-prod"; exit 1; fi @echo "Backing up production DB ..." @@ -128,4 +125,4 @@ sync_local_db: pg_restore -c -d mam-prod last.pgdump # Sync database and media. See above lines -sync_local: sync_media sync_db +sync_local: sync_local_media sync_local_db diff --git a/manage.py b/manage.py index ccdb032b..24eeef69 100755 --- a/manage.py +++ b/manage.py @@ -1,4 +1,4 @@ -#!bin/python +#!/usr/bin/env python import os import sys From 9b48922612dd68e0a259206ad13a28417e72b79f Mon Sep 17 00:00:00 2001 From: Mee Date: Tue, 23 Apr 2019 22:34:29 +0200 Subject: [PATCH 2/3] =?UTF-8?q?Odstran=C4=9Bny=20star=C3=A9=20slo=C5=BEky?= =?UTF-8?q?=20z=20gitignore?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 8 -------- 1 file changed, 8 deletions(-) diff --git a/.gitignore b/.gitignore index ee766b37..826b07e2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,14 +1,6 @@ # virtual env /env/ -/bin/ -/include/ -/lib/ -/local/ -/share/ -/virtualenv/ -/pip-selfcheck.json - # transient files /db-test.sqlite3* /db-local.sqlite3* From a9fb8c972b4b982572938681f64225f25274b547 Mon Sep 17 00:00:00 2001 From: Mee Date: Tue, 23 Apr 2019 22:53:50 +0200 Subject: [PATCH 3/3] =?UTF-8?q?Makefile:=20fix=20rozbit=C3=BDch=20deploy?= =?UTF-8?q?=5F*=20c=C3=ADl=C5=AF,=20v=C3=ADce=20n=C3=A1pov=C4=9Bdy,=20m?= =?UTF-8?q?=C3=A9n=C4=9B=20debugovac=C3=ADch=20v=C3=BDpis=C5=AF.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Makefile | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/Makefile b/Makefile index 94b59485..bac61375 100644 --- a/Makefile +++ b/Makefile @@ -7,25 +7,26 @@ VENV_PATH := env .PHONY: all venv_check clean install install_web install_venv clean_venv clean_schema run test deploy_test deploy_prod sync_test_media sync_test_db sync_test sync_local_media sync_local_db sync_local # activate by mělo být předpokladem ke všemu, co volá webový python (i.e. python nasazený do ${VENV}u kvůli webu, např. manage.py) -all: install - -venv_check: - @# Pokud org nemá zapnutý venv, poradíme mu, aby si ho zapnul a spadneme. Jinak nic. - @expr $$PATH : ".*:*$(shell pwd)/${VENV_PATH}/bin" > /dev/null && exit 0 || echo "Není zapnutý env, spusť \". ${VENV_PATH}/bin/activate\"." && false - -clean: clean_venv clean_schema - -install: +all: @# Just echo: # Install je trochu magický: # Spusť následující posloupnost příkazů: # make install_venv # . ${VENV_PATH}/bin/activate # make install_web + # + # Až skončíš s vývojem webu, spusť "deactivate". Tím zmizí '(${VENV_PATH})' ze začátku promptu. + +venv_check: + @# Pokud org nemá zapnutý venv, poradíme mu, aby si ho zapnul a spadneme. Jinak nic. + @expr $$PATH : ".*:*$(shell pwd)/${VENV_PATH}/bin" > /dev/null && exit 0 || echo 'Není zapnutý venv, spusť ". ${VENV_PATH}/bin/activate".\nPokud není venv nainstalovaný, spusť "make install_venv"' && false + +clean: clean_venv clean_schema + +install: install_web install_web: venv_check @# venv může být příšerně starý, takže nejdříve upgradujeme venvové věci - echo $$PATH pip install --upgrade pip pip install --upgrade setuptools # Instalace závislostí webu