summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'www-apps/isso/isso-0.12.5.ebuild')
-rw-r--r--www-apps/isso/isso-0.12.5.ebuild152
1 files changed, 152 insertions, 0 deletions
diff --git a/www-apps/isso/isso-0.12.5.ebuild b/www-apps/isso/isso-0.12.5.ebuild
new file mode 100644
index 0000000..2daca6c
--- /dev/null
+++ b/www-apps/isso/isso-0.12.5.ebuild
@@ -0,0 +1,152 @@
+# Copyright 2014-2021 mschiff, eroen
+
+EAPI=6
+
+# setup.py disallows 30 31 32
+# setup.py documents support 26 27 33
+# dev-python/html5lib -34
+# dev-python/itsdangerous -34
+# dev-python/misaka -26 -33 -34
+# dev-python/werkzeug -34
+# dev-python/configparser -26
+# dev-python/ipaddr -26
+PYTHON_COMPAT=( python3_{7,8} )
+
+if [[ $PV == *9999* ]]; then
+ inherit user distutils-r1 git-r3
+ EGIT_REPO_URI=https://github.com/posativ/${PN}.git
+ JS_REPO_URIS=( https://github.com/jrburke/almond.git
+ https://github.com/jrburke/r.js.git
+ https://github.com/requirejs/text.git )
+ VCS_DEPEND="dev-vcs/git[curl]"
+else
+ inherit user distutils-r1
+ SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+fi
+
+DESCRIPTION="lightweight Disqus alternative"
+HOMEPAGE="http://posativ.org/isso/ https://pypi.python.org/pypi/isso/ https://github.com/posativ/isso/"
+# BSD: pbkdf2.js sha1.js crypto.py?
+LICENSE="MIT BSD"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE=""
+if [[ ${PV} == *9999* ]]; then
+ IUSE+=" debug doc test"
+ DOCS=( README.md CHANGES.rst docs/{contribute.rst,faq.rst} )
+else
+ DOCS=( )
+fi
+
+LIBDEPEND="dev-python/html5lib[${PYTHON_USEDEP}]
+ dev-python/itsdangerous[${PYTHON_USEDEP}]
+ >=dev-python/misaka-2.0[${PYTHON_USEDEP}]
+ <dev-python/misaka-3.0[${PYTHON_USEDEP}]
+ dev-python/ipaddr[${PYTHON_USEDEP}]
+ dev-python/bleach[${PYTHON_USEDEP}]
+ "
+HDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+if [[ ${PV} == *9999* ]]; then
+ HDEPEND+=" ${VCS_DEPEND}
+ dev-ruby/sass
+ net-libs/nodejs
+ doc? ( dev-python/sphinx )"
+fi
+DEPEND="${HDEPEND}"
+if [[ ${PV} == *9999* ]]; then
+ DEPEND+=" test? ( dev-python/nose[${PYTHON_USEDEP}]
+ ${LIBDEPEND} )"
+fi
+RDEPEND="dev-python/setuptools[${PYTHON_USEDEP}]
+ ${LIBDEPEND}"
+
+pkg_setup() {
+ enewuser ${PN}
+}
+
+src_fetch() {
+ if [[ ${PV} == *9999* ]]; then
+ git-r3_src_fetch
+ for EGIT_REPO_URI in "${JS_REPO_URIS[@]}"; do (
+ unset ${PN}_LIVE_REPO
+ git-r3_src_fetch
+ ); done
+ else
+ default
+ fi
+}
+
+src_unpack() {
+ if [[ ${PV} == *9999* ]]; then
+ git-r3_src_unpack
+ for EGIT_REPO_URI in "${JS_REPO_URIS[@]}"; do (
+ unset ${PN}_LIVE_REPO;
+ EGIT_CHECKOUT_DIR=${WORKDIR}/${EGIT_REPO_URI##*/} git-r3_src_unpack
+ ); done
+ mkdir -p "${S}"/isso/js/components/{requirejs-text,almond}
+ cp "${WORKDIR}"/text.git/text.js "${S}"/isso/js/components/requirejs-text/
+ cp "${WORKDIR}"/almond.git/almond.js "${S}"/isso/js/components/almond/
+ else
+ default
+ fi
+}
+
+src_compile() {
+ if [[ ${PV} == *9999* ]]; then
+ # build r.js
+ pushd "${WORKDIR}"/r.js.git 2>/dev/null
+ node dist.js
+ popd 2>/dev/null
+ local RJS=${WORKDIR}/r.js.git/r.js
+
+ # generate css
+ scss isso/css/isso.scss isso/css/isso.css
+
+ # generate js using r.js
+ node "${RJS}" -o isso/js/build.embed.js
+ node "${RJS}" -o isso/js/build.count.js
+ if use debug; then
+ node "${RJS}" -o isso/js/build.embed.js optimize="none" out="isso/js/embed.dev.js"
+ node "${RJS}" -o isso/js/build.count.js optimize="none" out="isso/js/count.dev.js"
+ fi
+ fi
+ distutils-r1_src_compile
+}
+
+python_compile_all() {
+ if [[ ${PV} == *9999* ]]; then
+ if use doc; then
+ mkdir -p "${T}"/html
+ pushd docs 2>/dev/null
+ sphinx-build -E -b dirhtml -a . "${T}"/html
+ popd 2>/dev/null
+ mkdir -p "${T}"/html/_static/css
+ scss docs/_static/css/site.scss "${T}"/html/_static/css/site.css
+ fi
+ fi
+}
+
+python_test() {
+ if [[ ${PV} == *9999* ]]; then
+ # doctests fail, require https://github.com/gnublade/doctest-ignore-unicode
+ nosetests \
+ --with-coverage --cover-package=isso \
+ isso/ specs/
+ #nosetests --with-doctest --with-doctest-ignore-unicode \
+ # --with-coverage --cover-package=isso \
+ # isso/ specs/
+ fi
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ insinto /etc
+ doins share/${PN}.conf
+ if [[ ${PV} == *9999* ]]; then
+ use doc && dodoc -r "${T}"/html
+ fi
+
+ newinitd "${FILESDIR}"/${PN}.initd ${PN}
+ newconfd "${FILESDIR}"/${PN}.confd ${PN}
+}