from os import mkdir
from os.path import join
from shutil import rmtree, copytree

from invoke import Collection, ctask as task
from invocations.docs import docs, www
from invocations.packaging import publish


# Until we move to spec-based testing
@task
def test(ctx):
    ctx.run("python test.py --verbose", pty=True)

@task
def coverage(ctx):
    ctx.run("coverage run --source=paramiko test.py --verbose")


# Until we stop bundling docs w/ releases. Need to discover use cases first.
@task
def release(ctx):
    # Build docs first. Use terribad workaround pending invoke #146
    ctx.run("inv docs")
    # Move the built docs into where Epydocs used to live
    target = 'docs'
    rmtree(target, ignore_errors=True)
    # TODO: make it easier to yank out this config val from the docs coll
    copytree('sites/docs/_build', target)
    # Publish
    publish(ctx)
    # Remind
    print("\n\nDon't forget to update RTD's versions page for new minor releases!")


ns = Collection(test, coverage, release, docs, www)

@@ -264,49 +264,248 @@
 (ctx
-):%0A    ctx.run(%22python test.py --verbose%22
+, coverage=False, flags=%22%22):%0A    if %22--verbose%22 not in flags.split():%0A        flags += %22 --verbose%22%0A    runner = %22python%22%0A    if coverage:%0A        runner = %22coverage run --source=paramiko%22%0A    ctx.run(%22%7B0%7D test.py %7B1%7D%22.format(runner, flags)
 , pt
@@ -513,16 +513,17 @@
 =True)%0A%0A
+%0A
 @task%0Ade

Allow specifying test.py flags in 'inv test'