Switch from Fabric to Invoke
We don't use any of the remote server features supported by Fabric, so better to use the smaller, more modern, and Python 3 compatible Invoke.
This commit is contained in:
parent
b6d630d538
commit
4eacc911c9
@ -1,5 +1,5 @@
|
||||
# Automate tasks
|
||||
fabric
|
||||
invoke
|
||||
|
||||
# Build documentation
|
||||
sphinx
|
||||
|
||||
63
fabfile.py
vendored
63
fabfile.py
vendored
@ -1,63 +0,0 @@
|
||||
from fabric.api import execute, local, settings, task
|
||||
|
||||
|
||||
@task
|
||||
def docs():
|
||||
local('make -C docs/ html')
|
||||
|
||||
|
||||
@task
|
||||
def autodocs():
|
||||
auto(docs)
|
||||
|
||||
|
||||
@task
|
||||
def test(path=None):
|
||||
path = path or 'tests/'
|
||||
local('nosetests ' + path)
|
||||
|
||||
|
||||
@task
|
||||
def autotest(path=None):
|
||||
auto(test, path=path)
|
||||
|
||||
|
||||
@task
|
||||
def coverage(path=None):
|
||||
path = path or 'tests/'
|
||||
local(
|
||||
'nosetests --with-coverage --cover-package=mopidy '
|
||||
'--cover-branches --cover-html ' + path)
|
||||
|
||||
|
||||
@task
|
||||
def autocoverage(path=None):
|
||||
auto(coverage, path=path)
|
||||
|
||||
|
||||
@task
|
||||
def lint(path=None):
|
||||
path = path or '.'
|
||||
local('flake8 $(find %s -iname "*.py")' % path)
|
||||
|
||||
|
||||
@task
|
||||
def autolint(path=None):
|
||||
auto(lint, path=path)
|
||||
|
||||
|
||||
def auto(task, *args, **kwargs):
|
||||
while True:
|
||||
local('clear')
|
||||
with settings(warn_only=True):
|
||||
execute(task, *args, **kwargs)
|
||||
local(
|
||||
'inotifywait -q -e create -e modify -e delete '
|
||||
'--exclude ".*\.(pyc|sw.)" -r docs/ mopidy/ tests/')
|
||||
|
||||
|
||||
@task
|
||||
def update_authors():
|
||||
# Keep authors in the order of appearance and use awk to filter out dupes
|
||||
local(
|
||||
"git log --format='- %aN <%aE>' --reverse | awk '!x[$0]++' > AUTHORS")
|
||||
50
tasks.py
Normal file
50
tasks.py
Normal file
@ -0,0 +1,50 @@
|
||||
import sys
|
||||
|
||||
from invoke import run, task
|
||||
|
||||
|
||||
@task
|
||||
def docs(watch=False, warn=False):
|
||||
if watch:
|
||||
return watcher(docs)
|
||||
run('make -C docs/ html', warn=warn)
|
||||
|
||||
|
||||
@task
|
||||
def test(path=None, coverage=False, watch=False, warn=False):
|
||||
if watch:
|
||||
return watcher(test)
|
||||
path = path or 'tests/'
|
||||
cmd = 'nosetests'
|
||||
if coverage:
|
||||
cmd += (
|
||||
' --with-coverage --cover-package=mopidy'
|
||||
' --cover-branches --cover-html')
|
||||
cmd += ' %s' % path
|
||||
run(cmd, pty=True, warn=warn)
|
||||
|
||||
|
||||
@task
|
||||
def lint(watch=False, warn=False):
|
||||
if watch:
|
||||
return watcher(lint)
|
||||
run('flake8', warn=warn)
|
||||
|
||||
|
||||
@task
|
||||
def update_authors():
|
||||
# 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(
|
||||
'inotifywait -q -e create -e modify -e delete '
|
||||
'--exclude ".*\.(pyc|sw.)" -r docs/ mopidy/ tests/')
|
||||
except KeyboardInterrupt:
|
||||
sys.exit()
|
||||
Loading…
Reference in New Issue
Block a user