diff --git a/www/py-isso/Makefile b/www/py-isso/Makefile index 76a5687..15dd211 100644 --- a/www/py-isso/Makefile +++ b/www/py-isso/Makefile @@ -23,20 +23,26 @@ RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}Jinja2>0:devel/py-Jinja2@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}sqlite3>0:databases/py-sqlite3@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}nose>0:devel/py-nose@${PY_FLAVOR} -BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}cffi>1.3.0:devel/py-cffi@${PY_FLAVOR} +BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}cffi>1.3.0:devel/py-cffi@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}sphinx>0:textproc/py-sphinx@${PY_FLAVOR} \ + npm>0:www/npm -USES= python -USE_PYTHON= autoplist concurrent distutils +USES= gmake python +USE_PYTHON= autoplist distutils USE_GITHUB= yes GH_ACCOUNT= posativ GH_PROJECT= ${PORTNAME} GH_TAGNAME= ${DISTVERSION} +ALL_TARGET= init man js + +MAKEFILE= ${FILESDIR}/Makefile.in + +MAKE_JOBS_UNSAFE= no + USERS= www GROUPS= www -NO_ARCH= yes - USE_RC_SUBR= isso PLIST_FILES= "@sample etc/isso.conf.sample" @@ -51,6 +57,12 @@ post-install: @${MKDIR} ${STAGEDIR}${PREFIX}/etc ${CP} ${WRKSRC}/share/isso.conf ${STAGEDIR}${PREFIX}/etc/isso.conf.sample +#do-install: +# cd ${WRKSRC} && ${PYTHON_CMD} setup.py install --root=${STAGEDIR} --prefix=${PREFIX} --optimize=1 + +do-build: + @cd ${WRKSRC} && ${MAKE_CMD} -f ${MAKEFILE} init man js + do-test: @cd ${WRKSRC} && ${PYTHON_CMD} setup.py nosetests diff --git a/www/py-isso/files/Makefile.in b/www/py-isso/files/Makefile.in new file mode 100644 index 0000000..e113353 --- /dev/null +++ b/www/py-isso/files/Makefile.in @@ -0,0 +1,78 @@ +# INSTALLATION: pip install sphinx && npm install --global node-sass + +FLAKE_IGNORE=E226,E241,E265,E402,E501,E704 + +ISSO_JS_SRC := $(shell find isso/js/app -type f) \ + $(shell ls isso/js/*.js | grep -vE "(min|dev)") \ + isso/js/lib/requirejs-jade/jade.js + +ISSO_JS_DST := isso/js/embed.min.js isso/js/embed.dev.js \ + isso/js/count.min.js isso/js/count.dev.js + +ISSO_CSS := isso/css/isso.css + +ISSO_PY_SRC := $(shell git ls-files | grep -E "^isso/.+.py$$") + +DOCS_RST_SRC := $(shell find docs/ -type f -name '*.rst') \ + $(wildcard docs/_isso/*) \ + docs/index.html docs/conf.py docs/docutils.conf \ + share/isso.conf + +DOCS_CSS_SRC := docs/_static/css/site.scss + +DOCS_CSS_DEP := $(shell find docs/_static/css/neat -type f) \ + $(shell find docs/_static/css/bourbon -type f) + +DOCS_CSS_DST := docs/_static/css/site.css + +DOCS_MAN_DST := man/man1/isso.1 man/man5/isso.conf.5 + +DOCS_HTML_DST := docs/_build/html + +RJS = ./node_modules/requirejs/bin/r.js + +SASS = node-sass + +all: init js + +init: + npm install bower requirejs uglify-js jade && cp package-lock.json package.json + cd isso/js && ../../node_modules/bower/bin/bower install --allow-root almond requirejs requirejs-text jade + +flakes: + flake8 . --count --ignore=${FLAKE_IGNORE} --max-line-length=127 --show-source --statistics + +isso/js/%.min.js: $(ISSO_JS_SRC) $(ISSO_CSS) + $(RJS) -o isso/js/build.$*.js out=$@ + +isso/js/%.dev.js: $(ISSO_JS_SRC) $(ISSO_CSS) + $(RJS) -o isso/js/build.$*.js optimize="none" out=$@ + +js: $(ISSO_JS_DST) + +man: $(DOCS_RST_SRC) + sphinx-build -b man docs/ man/ + mkdir -p man/man1/ man/man5 + mv man/isso.1 man/man1/isso.1 + mv man/isso.conf.5 man/man5/isso.conf.5 + +${DOCS_CSS_DST}: $(DOCS_CSS_SRC) $(DOCS_CSS_DEP) + $(SASS) --no-cache $(DOCS_CSS_SRC) $@ + +${DOCS_HTML_DST}: $(DOCS_RST_SRC) $(DOCS_CSS_DST) + sphinx-build -b dirhtml docs/ $@ + +site: $(DOCS_HTML_DST) + +coverage: $(ISSO_PY_SRC) + nosetests --with-doctest --with-coverage --cover-package=isso --cover-html isso/ + +test: $($ISSO_PY_SRC) + python setup.py nosetests + +clean: + rm -f $(DOCS_MAN_DST) $(DOCS_CSS_DST) $(ISSO_JS_DST) + rm -rf $(DOCS_HTML_DST) + +.PHONY: clean site man init js coverage test +