Add a Makefile. Lint code. Fix butterfly open. Add a CHANGELOG.md

This commit is contained in:
Florian Mounier
2017-05-02 17:59:52 +02:00
parent eacfdcd52f
commit bdc1c7a80d
19 changed files with 106 additions and 47 deletions

2
.gitignore vendored
View File

@@ -8,3 +8,5 @@ node_modules/
sass/scss
*.egg-info/
build/
.cache/
.env/

4
CHANGELOG.md Normal file
View File

@@ -0,0 +1,4 @@
3.1.0
=====
* Start a changelog

32
Makefile Normal file
View File

@@ -0,0 +1,32 @@
include Makefile.config
-include Makefile.custom.config
all: install lint check-outdated run-debug
install:
test -d $(VENV) || virtualenv $(VENV)
$(PIP) install --upgrade --no-cache pip setuptools -e .[lint] devcore
clean:
rm -fr $(VENV)
rm -fr *.egg-info
lint:
$(PYTEST) --flake8 -m flake8 $(PROJECT_NAME)
$(PYTEST) --isort -m isort $(PROJECT_NAME)
check-outdated:
$(PIP) list --outdated --format=columns
run-debug:
sleep 0.5 && $(BROWSER) http://localhost:1212&
$(PYTHON) ./butterfly.server.py --port=1212 --unsecure --debug
release:
git pull
$(eval VERSION := $(shell PROJECT_NAME=$(PROJECT_NAME) $(VENV)/bin/devcore bump $(LEVEL)))
git commit -am "Bump $(VERSION)"
git tag $(VERSION)
$(PYTHON) setup.py sdist bdist_wheel upload
git push
git push --tags

7
Makefile.config Normal file
View File

@@ -0,0 +1,7 @@
PROJECT_NAME = butterfly
# Python env
VENV = $(PWD)/.env
PIP = $(VENV)/bin/pip
PYTHON = $(VENV)/bin/python
PYTEST = $(VENV)/bin/py.test

View File

@@ -22,15 +22,6 @@ import tornado.options
import tornado.web
from logging import getLogger
try:
import pkg_resources
except ImportError:
__version__ = "pkg_resources not found on PYTHON_PATH"
else:
try:
__version__ = pkg_resources.require('butterfly')[0].version
except pkg_resources.DistributionNotFound:
__version__ = "butterfly is not installed"
log = getLogger('butterfly')
@@ -86,4 +77,4 @@ if hasattr(tornado.options.options, 'debug'):
if tornado.options.options.uri_root_path else '')
)
import butterfly.routes
import butterfly.routes # noqa: F401

View File

@@ -1,11 +1,12 @@
#!/usr/bin/env python
import sys
import os
import argparse
import base64
import mimetypes
import os
import subprocess
import sys
from butterfly.escapes import image
import argparse
parser = argparse.ArgumentParser(description='Butterfly cat wrapper.')
parser.add_argument('-o', action="store_true",

View File

@@ -2,7 +2,8 @@
import argparse
import sys
parser = argparse.ArgumentParser(description='Butterfly terminal color tester.')
parser = argparse.ArgumentParser(
description='Butterfly terminal color tester.')
parser.add_argument(
'--colors',
default='16',

View File

@@ -1,11 +1,11 @@
#!/usr/bin/env python
import base64
import os
import subprocess
import butterfly
from butterfly.escapes import image
from butterfly.utils import ansi_colors
import os
import butterfly
import base64
import shutil
import subprocess
print(ansi_colors.white + "Welcome to the butterfly help." + ansi_colors.reset)
path = os.getenv('BUTTERFLY_PATH')
@@ -58,7 +58,6 @@ Butterfly is a xterm compliant terminal built with python and javascript.
code=ansi_colors.light_yellow,
comment=ansi_colors.light_magenta,
reset=ansi_colors.reset,
rcol=int(subprocess.check_output(['stty','size']).split()[1]) - 31,
rcol=int(subprocess.check_output(['stty', 'size']).split()[1]) - 31,
main=os.path.normpath(os.path.join(
os.path.abspath(os.path.dirname(butterfly.__file__)),
'sass'))))
os.path.abspath(os.path.dirname(butterfly.__file__)), 'sass'))))

View File

@@ -1,9 +1,10 @@
#!/usr/bin/env python
from butterfly.escapes import html
import argparse
import fileinput
import sys
from butterfly.escapes import html
parser = argparse.ArgumentParser(
description="Butterfly html converter.\n\n"
"Output in html standard input.\n"

View File

@@ -1,7 +1,14 @@
#!/usr/bin/env python
import argparse
import os
import webbrowser
import argparse
try:
from urllib.parse import urlparse, parse_qs, urlencode, urlunparse
except ImportError:
from urlparse import urlparse, parse_qs, urlunparse
from urllib import urlencode
parser = argparse.ArgumentParser(description='Butterfly tab opener.')
parser.add_argument(
@@ -11,6 +18,10 @@ parser.add_argument(
help='Directory to open the new tab in. (Defaults to current)')
args = parser.parse_args()
url = '%swd%s' % (os.getenv('LOCATION', '/'), os.path.abspath(args.location))
url_parts = urlparse(os.getenv('LOCATION', '/'))
query = parse_qs(url_parts.query)
query['path'] = os.path.abspath(args.location)
url = urlunparse(url_parts._replace(path='')._replace(query=urlencode(query)))
if not webbrowser.open(url):
print('Unable to open browser, please go to %s' % url)

View File

@@ -1,7 +1,7 @@
#!/usr/bin/env python
import argparse
import os
import webbrowser
import argparse
parser = argparse.ArgumentParser(description='Butterfly session opener.')
parser.add_argument(

View File

@@ -1,8 +1,9 @@
from contextlib import contextmanager
from butterfly.utils import ansi_colors as colors
import sys
import termios
import tty
from contextlib import contextmanager
import termios
from butterfly.utils import ansi_colors as colors # noqa: F401
@contextmanager

View File

@@ -133,9 +133,9 @@ class PAM():
if isinstance(service, str):
service = service.encode(encoding)
else:
if isinstance(username, unicode):
if isinstance(username, unicode): # noqa: F821
username = username.encode(encoding)
if isinstance(service, unicode):
if isinstance(service, unicode): # noqa: F821
service = service.encode(encoding)
if b'\x00' in username or b'\x00' in service:

View File

@@ -30,7 +30,7 @@ import tornado.options
import tornado.process
import tornado.web
import tornado.websocket
from butterfly import Route, __version__, url, utils
from butterfly import Route, url, utils
from butterfly.terminal import Terminal

View File

@@ -24,14 +24,16 @@ import signal
import string
import struct
import sys
import termios
from logging import getLogger
import tornado.ioloop
import tornado.options
import tornado.process
import tornado.web
import tornado.websocket
from logging import getLogger
from butterfly import utils, __version__
import termios
from butterfly import __version__, utils
log = getLogger('butterfly')
ioloop = tornado.ioloop.IOLoop.instance()

View File

@@ -18,13 +18,13 @@
import os
import pwd
import time
import sys
import struct
from logging import getLogger
from collections import namedtuple
import subprocess
import re
import struct
import subprocess
import sys
import time
from collections import namedtuple
from logging import getLogger
log = getLogger('butterfly')
@@ -294,11 +294,12 @@ def get_wtmp_file():
if os.path.exists(file):
return file
UTmp = namedtuple(
'UTmp',
['type', 'pid', 'line', 'id', 'user', 'host',
'exit0', 'exit1', 'session',
'sec', 'usec', 'addr0', 'addr1', 'addr2', 'addr3', 'unused'])
'UTmp',
['type', 'pid', 'line', 'id', 'user', 'host',
'exit0', 'exit1', 'session',
'sec', 'usec', 'addr0', 'addr1', 'addr2', 'addr3', 'unused'])
def utmp_line(id, type, pid, fd, user, host, ts):

View File

@@ -1,4 +1,4 @@
document.addEventListener 'keydown', (e) ->
return true unless e.altKey and e.keyCode is 79
open(location.href)
open(location.origin)
cancel e

View File

@@ -1,2 +1,7 @@
[bdist_wheel]
universal = 1
[tool:pytest]
flake8-ignore =
*.py E731 E402
butterfly/bin/help.py E501

View File

@@ -27,7 +27,8 @@ setup(
install_requires=["tornado>=3.2", "pyOpenSSL"],
extras_require={
'themes': ["libsass"],
'systemd': ['tornado_systemd']
'systemd': ['tornado_systemd'],
'lint': ['pytest', 'pytest-flake8', 'pytest-isort']
},
package_data={
'butterfly': [