Add CSS to preview an uploaded image
[cascardo/ipsilon.git] / Makefile
1 RPMBUILD = $(PWD)/dist/rpmbuild
2
3 all: testdeps lint pep8 test
4         echo "All tests passed"
5
6 testdeps:
7         # Determine if test deps are installed
8         # First, some binaries
9         which lessc
10         which pylint
11         which pep8
12         which httpd
13         which postgres
14         which openssl
15         which slapd
16         # Now, python libraries
17         python -c 'import openid'
18         python -c 'import openid_teams'
19         python -c 'import openid_cla'
20         python -c 'import cherrypy'
21         python -c 'import M2Crypto'
22         python -c 'import lasso'
23         python -c 'import sqlalchemy'
24         python -c 'import ldap'
25         python -c 'import pam'
26         python -c 'import fedora'
27         python -c 'import ipapython'
28         python -c 'import jinja2'
29         python -c 'import psycopg2'
30         # And now everything else
31         ls /usr/share/doc/sssd
32         ls /usr/lib64/libsss_simpleifp.so.0
33         ls /usr/lib64/httpd/modules/mod_wsgi.so
34         ls /usr/libexec/mod_auth_mellon
35
36 lint:
37         # Analyze code
38         # don't show recommendations, info, comments, report
39         # W0613 - unused argument
40         # Ignore cherrypy class members as they are dynamically added
41         # Ignore IPA API class members as they are dynamically added
42         pylint -d c,r,i,W0613 -r n -f colorized \
43                    --notes= \
44                    --ignored-classes=cherrypy,API \
45                    --disable=star-args \
46                    ./ipsilon
47
48 pep8:
49         # Check style consistency
50         pep8 ipsilon
51
52 # Requires python-lesscpy
53 ui: less/ipsilon.less less/admin.less
54         # Create CSS
55         lesscpy less/ipsilon.less > ui/css/ipsilon.css
56         lesscpy less/admin.less > ui/css/admin.css
57         lesscpy less/styles.less > ui/css/styles.css
58
59 # Requires NodeJS less and clear-css packages
60 # Should be removed when lesscpy starts to work properly
61 ui-node: less/ipsilon.less less/admin.less
62
63         # Create and minify CSS
64         #lessc --clean-css less/ipsilon.less ui/css/ipsilon.css
65         #lessc --clean-css less/admin.less ui/css/admin.css
66
67         #FIXME: temporarily disable clean-css fo deveopment
68         lessc less/ipsilon.less ui/css/ipsilon.css
69         lessc less/admin.less ui/css/admin.css
70
71 clean:
72         rm -fr testdir cscope.out
73         find ./ -name '*.pyc' -exec rm -f {} \;
74
75 cscope:
76         git ls-files | xargs pycscope
77
78 lp-test:
79         pylint -d c,r,i,W0613 -r n -f colorized \
80                    --notes= \
81                    --ignored-classes=cherrypy \
82                    --disable=star-args \
83                    ./tests
84         pep8 tests
85
86 wrappers:
87         #rm -fr wrapdir
88         #mkdir wrapdir
89         #LD_PRELOAD=libsocket_wrapper.so
90         #SOCKET_WRAPPER_DIR=wrapdir
91         #SOCKET_WRAPPER_DEFAULT_IFACE=9
92
93 tests: wrappers
94         rm -rf testdir
95         PYTHONPATH=./ ./tests/tests.py --test=test1
96         PYTHONPATH=./ ./tests/tests.py --test=testlogout
97         PYTHONPATH=./ ./tests/tests.py --test=testnameid
98         PYTHONPATH=./ ./tests/tests.py --test=testrest
99         PYTHONPATH=./ ./tests/tests.py --test=testmapping
100         PYTHONPATH=./ ./tests/tests.py --test=testgssapi
101         PYTHONPATH=./ ./tests/tests.py --test=attrs
102         PYTHONPATH=./ ./tests/tests.py --test=trans
103         PYTHONPATH=./ ./tests/tests.py --test=pgdb
104         PYTHONPATH=./ ./tests/tests.py --test=fconf
105         PYTHONPATH=./ ./tests/tests.py --test=ldap
106         PYTHONPATH=./ ./tests/tests.py --test=ldapdown
107         PYTHONPATH=./ ./tests/tests.py --test=openid
108         PYTHONPATH=./ ./tests/tests.py --test=dbupgrades
109
110 test: lp-test unittests tests
111
112 unittests:
113         PYTHONPATH=./ ./ipsilon/tools/saml2metadata.py
114         PYTHONPATH=./ python ./ipsilon/util/policy.py
115
116 sdist:
117         python setup.py sdist
118
119 rpmroot:
120         rm -rf $(RPMBUILD)
121         mkdir -p $(RPMBUILD)/BUILD
122         mkdir -p $(RPMBUILD)/RPMS
123         mkdir -p $(RPMBUILD)/SOURCES
124         mkdir -p $(RPMBUILD)/SPECS
125         mkdir -p $(RPMBUILD)/SRPMS
126
127 rpmdistdir:
128         mkdir -p dist/rpms
129         mkdir -p dist/srpms
130
131 rpms: rpmroot rpmdistdir sdist
132         cp dist/ipsilon*.tar.gz $(RPMBUILD)/SOURCES/
133         rpmbuild --define "gittag .git`git rev-parse --short HEAD`" --define "builddate .`date +%Y%m%d%H%M`" --define "_topdir $(RPMBUILD)" -ba contrib/fedora/ipsilon.spec
134         mv $(RPMBUILD)/RPMS/*/ipsilon-*.rpm dist/rpms/
135         mv $(RPMBUILD)/SRPMS/ipsilon-*.src.rpm dist/srpms/
136         rm -rf $(RPMBUILD)
137
138 releaserpms: rpmroot rpmdistdir sdist
139         cp dist/ipsilon*.tar.gz $(RPMBUILD)/SOURCES/
140         rpmbuild --define "_topdir $(RPMBUILD)" -ba contrib/fedora/ipsilon.spec
141         mv $(RPMBUILD)/RPMS/*/ipsilon-*.rpm dist/rpms/
142         mv $(RPMBUILD)/SRPMS/ipsilon-*.src.rpm dist/srpms/
143         rm -rf $(RPMBUILD)