SHELL := /bin/bash # if a virtualenv is used put the full python path # e.g.: PYTHON=$$HOME/.virtualenvs/ishtar/bin/python PYTHON=python # put name of your current project project=example_project # list used apps apps="ishtar_common" "archaeological_operations" "archaeological_context_records" "archaeological_files" "archaeological_finds" "archaeological_warehouse" default_data='fr' url='ishtar.example.com' project_name='Test' clean: -rm -rf *~* -find . -name '*.pyc' -exec rm {} \; -find . -name '.*.swp' -exec rm {} \; test: clean cd $(project); $(PYTHON) manage.py test $(apps) pep8: pep8 --filename=*.py --ignore=W --exclude="manage.py,settings.py,migrations" --statistics --repeat . pylint: for DIR in $(apps); do \ pylint "$(CURDIR)/$$DIR" --ignore=.git,migrations --max-public-methods=50 --ignored-classes=Item.Meta --method-rgx='[a-z_][a-z0-9_]{2,40}$$'; \ done fresh_syncdb: cd $(project); $(PYTHON) ./manage.py syncdb --noinput 2> /dev/null > /dev/null cd $(project); $(PYTHON) ./manage.py migrate ishtar_common 2> /dev/null > /dev/null if [[ '$(apps)' == *archaeological_files* ]]; then cd $(project); $(PYTHON) ./manage.py migrate archaeological_files 0013 2> /dev/null > /dev/null; fi if [[ '$(apps)' == *archaeological_operations* ]]; then cd $(project); $(PYTHON) ./manage.py migrate archaeological_operations 2> /dev/null > /dev/null; fi if [[ '$(apps)' == *archaeological_files* ]]; then cd $(project); $(PYTHON) ./manage.py migrate archaeological_files 2> /dev/null > /dev/null; fi cd $(project); $(PYTHON) ./manage.py migrate 2> /dev/null > /dev/null echo "* load default data" # data migrations have created some default data - return to a clean state cd $(project); $(PYTHON) ./manage.py flush --noinput 2> /dev/null cd $(project); $(PYTHON) ./manage.py loaddata \ '../fixtures/initial_data-auth-'$(default_data)'.json' 2> /dev/null cd $(project); $(PYTHON) ./manage.py loaddata \ '../ishtar_common/fixtures/initial_data-'$(default_data)'.json' 2> /dev/null cd $(project); $(PYTHON) ./manage.py loaddata \ '../ishtar_common/fixtures/initial_towns-'$(default_data)'.json' 2> /dev/null if [[ '$(apps)' == *archaeological_operations* ]]; then cd $(project); $(PYTHON) ./manage.py loaddata \ '../archaeological_operations/fixtures/initial_data-'$(default_data)'.json' 2> /dev/null; fi if [[ '$(apps)' == *archaeological_files* ]]; then cd $(project); $(PYTHON) ./manage.py loaddata \ '../archaeological_files/fixtures/initial_data-'$(default_data)'.json' 2> /dev/null; fi if [[ '$(apps)' == *archaeological_context_records* ]]; then cd $(project); $(PYTHON) ./manage.py loaddata \ '../archaeological_context_records/fixtures/initial_data-'$(default_data)'.json' 2> /dev/null; fi if [[ '$(apps)' == *archaeological_finds* ]]; then cd $(project); $(PYTHON) ./manage.py loaddata \ '../archaeological_finds/fixtures/initial_data-'$(default_data)'.json' 2> /dev/null; fi if [[ '$(apps)' == *archaeological_warehouse* ]]; then cd $(project); $(PYTHON) ./manage.py loaddata \ '../archaeological_warehouse/fixtures/initial_data-'$(default_data)'.json' 2> /dev/null; fi echo "* create superuser" cd $(project); $(PYTHON) ./manage.py createsuperuser # "de-flush" migrations $(PYTHON) ./manage.py migrate --fake 2> /dev/null > /dev/null # add a default site echo '[{"pk":null, "model": "sites.site", "fields": {"domain": "'$(URL)'", "name": "'$(PROJECT_NAME)'"}}]' > \ /tmp/site.json cd $(project); $(PYTHON) ./manage.py loaddata /tmp/site.json rm /tmp/site.json syncdb: cd $(project); $(PYTHON) manage.py syncdb --noinput cd $(project); $(PYTHON) manage.py migrate shell: cd $(project);$(PYTHON) manage.py shell run: cd $(project); $(PYTHON) manage.py runserver 0.0.0.0:8000 compilemessages: for DIR in $(apps); do \ cd $(CURDIR)/$$DIR; \ $(PYTHON) ../$(project)/manage.py compilemessages; \ done