49 lines
1.1 KiB
Python
49 lines
1.1 KiB
Python
import sys
|
|
|
|
from invoke import run, task
|
|
|
|
|
|
@task
|
|
def docs(ctx, watch=False, warn=False):
|
|
if watch:
|
|
return watcher(docs)
|
|
run('make -C docs/ html', warn=warn)
|
|
|
|
|
|
@task
|
|
def test(ctx, path=None, coverage=False, watch=False, warn=False):
|
|
if watch:
|
|
return watcher(test, path=path, coverage=coverage)
|
|
path = path or 'tests/'
|
|
cmd = 'pytest'
|
|
if coverage:
|
|
cmd += ' --cov=mopidy --cov-report=term-missing'
|
|
cmd += ' %s' % path
|
|
run(cmd, pty=True, warn=warn)
|
|
|
|
|
|
@task
|
|
def lint(ctx, watch=False, warn=False):
|
|
if watch:
|
|
return watcher(lint)
|
|
run('flake8', warn=warn)
|
|
|
|
|
|
@task
|
|
def update_authors(ctx):
|
|
# Keep authors in the order of appearance and use awk to filter out dupes
|
|
run("git log --format='- %aN <%aE>' --reverse | awk '!x[$0]++' > AUTHORS")
|
|
|
|
|
|
def watcher(task, *args, **kwargs):
|
|
while True:
|
|
run('clear')
|
|
kwargs['warn'] = True
|
|
task(*args, **kwargs)
|
|
try:
|
|
run(
|
|
r'inotifywait -q -e create -e modify -e delete '
|
|
r'--exclude ".*\.(pyc|sw.)" -r docs/ mopidy/ tests/')
|
|
except KeyboardInterrupt:
|
|
sys.exit()
|