summaryrefslogtreecommitdiff
path: root/Makefile.example
blob: 7d37d6bc313d7d95fb0c09ec3d3381ac3b2b25fd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
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