diff options
-rw-r--r-- | .gitignore | 4 | ||||
-rw-r--r-- | Makefile | 1 | ||||
-rw-r--r-- | setup.py | 2 | ||||
-rw-r--r-- | src/leap/bitmask/core/_web.py | 9 | ||||
-rw-r--r-- | src/leap/bitmask/core/service.py | 1 | ||||
-rw-r--r-- | src/leap/bitmask/core/web/README | 9 | ||||
-rw-r--r-- | src/leap/bitmask/core/websocket.py | 4 | ||||
-rw-r--r-- | www/Makefile | 12 | ||||
-rw-r--r-- | www/leap/bitmask_www/__init__.py | 0 | ||||
-rw-r--r-- | www/setup.py | 18 |
10 files changed, 51 insertions, 9 deletions
@@ -38,3 +38,7 @@ ENV/ www/node_modules www/public www/npm-debug.log +www/leap/bitmask_www/public/ + +# vim +*.swp @@ -4,6 +4,7 @@ clean: dev-mail: pip install -e '.[mail]' + pip install -e www dev-all: pip install -e '.[all]' @@ -27,9 +27,11 @@ extras = { ], 'gui': [ 'vext.pyqt5', + # 'bitmask_www' # when it's published in pypi ], 'all': [ 'vext.pyqt5', + # 'bitmask_www' # when it's published in pypi 'leap.soledad.client', 'gnupg', ] diff --git a/src/leap/bitmask/core/_web.py b/src/leap/bitmask/core/_web.py index 2c9f279..1a32fed 100644 --- a/src/leap/bitmask/core/_web.py +++ b/src/leap/bitmask/core/_web.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- # _web.py -# Copyright (C) 2016 LEAP +# Copyright (C) 2016 LEAP Encryption Access Project # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -46,14 +46,16 @@ class HTTPDispatcherService(service.Service): def startService(self): webdir = os.path.abspath( - pkg_resources.resource_filename("leap.bitmask_js", "public")) + pkg_resources.resource_filename('leap.bitmask_www', 'public')) root = File(webdir) api = Api(CommandDispatcher(self._core)) - root.putChild(u"API", api) + root.putChild(u'API', api) site = Site(root) self.site = site + + # TODO use endpoints instead self.listener = reactor.listenTCP(self.port, site, interface='127.0.0.1') @@ -63,6 +65,7 @@ class HTTPDispatcherService(service.Service): class Api(Resource): + isLeaf = True def __init__(self, dispatcher): diff --git a/src/leap/bitmask/core/service.py b/src/leap/bitmask/core/service.py index ee918d4..b473f58 100644 --- a/src/leap/bitmask/core/service.py +++ b/src/leap/bitmask/core/service.py @@ -119,6 +119,7 @@ class BitmaskBackend(configurable.ConfigurableService): zs.setServiceParent(self) def init_web(self): + # FIXME try to import leap.bitmask_www and fail otherwise http = _web.HTTPDispatcherService(self) http.setServiceParent(self) diff --git a/src/leap/bitmask/core/web/README b/src/leap/bitmask/core/web/README new file mode 100644 index 0000000..76a745d --- /dev/null +++ b/src/leap/bitmask/core/web/README @@ -0,0 +1,9 @@ +This is the original implementation of the bitmask.js library, which uses the +REST api exposed by the HTTPRequestDispatcher. + +The development of bitmask_js is in the www/ folder in this bitmask-dev repo. + +A pre-compiled version of the html+js web-ui can be found in the leap.bitmask_www package. + +This remains here to be able to develop against the REST api without the need +of installing the full-fledged bitmask_www package. diff --git a/src/leap/bitmask/core/websocket.py b/src/leap/bitmask/core/websocket.py index 5569c6c..97a2d40 100644 --- a/src/leap/bitmask/core/websocket.py +++ b/src/leap/bitmask/core/websocket.py @@ -61,11 +61,11 @@ class WebSocketsDispatcherService(service.Service): # we server static files under "/" .. webdir = os.path.abspath( - pkg_resources.resource_filename("leap.bitmask.core", "web")) + pkg_resources.resource_filename('leap.bitmask.core', 'web')) root = File(webdir) # and our WebSocket server under "/ws" - root.putChild(u"bitmask", resource) + root.putChild(u'bitmask', resource) # both under one Twisted Web Site site = Site(root) diff --git a/www/Makefile b/www/Makefile index 1e21b9a..e3a791d 100644 --- a/www/Makefile +++ b/www/Makefile @@ -2,11 +2,16 @@ build: npm install npm run build:production +build-dev: + npm run watch + clean: rm -rf public rm -rf node_modules -pydist-wheel: +pydist: pydist-clean build + touch leap/bitmask_www/__init__.py + cp -r public/ leap/bitmask_www python setup.py bdist_wheel pydist-dev: @@ -14,3 +19,8 @@ pydist-dev: pydist-clean: rm -rf build dist + rm -rf leap/bitmask_www/* + +all: clean build pydist + +.PHONY: clean build install all diff --git a/www/leap/bitmask_www/__init__.py b/www/leap/bitmask_www/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/www/leap/bitmask_www/__init__.py diff --git a/www/setup.py b/www/setup.py index 860d0aa..b5473d1 100644 --- a/www/setup.py +++ b/www/setup.py @@ -15,19 +15,26 @@ # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. + """ Setup file for leap.bitmask-www """ + from setuptools import setup import datetime import time + +# TODO add all the node steps in this setup too. +# Right now it's expected that you run the node commands by hand +# i.e., 'make build' + now = datetime.datetime.now() timestamp = time.strftime('%Y%m%d', now.timetuple()) setup( - name='leap.bitmask-www', + name='leap.bitmask_www', version='0.1.%s' % timestamp, description='Bitmask html/js UI', long_description=open('notes-python.txt').read(), @@ -35,8 +42,13 @@ setup( author_email='info@leap.se', url='http://leap.se', namespace_packages=['leap'], - packages=['leap.bitmask-www'], + packages=['leap.bitmask_www'], package_data={ - '': ['public/*', ] + '': ['public/*', + 'public/css/*', + 'public/fonts/*', + 'public/img/*', + 'publlic/js/*', + ] } ) |