Exemplo n.º 1
0
def _args():
    parser = ArgumentParser()
    args = Dodo.parse_args(parser)
    args.rtop = os.path.join(Dodo.get_config('/SERVER/node_modules_dir'),
                             '.bin', 'rtop')
    args.cwd = Dodo.get_config('/WEBPACK/webpack_dir')
    return args
Exemplo n.º 2
0
def _args():
    Dodo.parser.add_argument("script")
    Dodo.parser.add_argument("script_args", nargs="?")
    args = Dodo.parse_args()
    args.python = Dodo.get_config("/PYTHON/python")
    args.cwd = Dodo.get_config("/PYTHON/cwd")
    return args
Exemplo n.º 3
0
def _args():
    parser = ArgumentParser(description="Publish own npm packages")
    parser.add_argument("--unlink", action="store_true")

    # Parse the arguments.
    args = Dodo.parse_args(parser, config_args=[])
    args.dir_by_name = Dodo.get_config("/TSC/src_dir_map")
    args.node_modules_dir = Dodo.get_config("/NODE/node_modules_dir")
    return args
Exemplo n.º 4
0
def _args():
    Dodo.parser.description = "Runs nps"
    Dodo.parser.add_argument("--cat", action="store_true")
    Dodo.parser.add_argument("--edit", action="store_true")
    Dodo.parser.add_argument("nps_args", nargs="?")

    args = Dodo.parse_args()
    args.cwd = Dodo.get_config("/NODE/cwd")
    args.nps = Dodo.get_config("/NODE/nps", "nps")

    global_config = load_global_config_parser()
    args.editor = global_config_get(global_config, "settings", "editor")

    return args
def patch_docker_options(docker_image):
    docker_options = Dodo.get_config('/DOCKER') \
        .setdefault('options', {}) \
        .setdefault(Dodo.command_name, {})

    docker_options.setdefault('image', _docker_image(docker_image))
    docker_options.setdefault('rm', False)
Exemplo n.º 6
0
def _args():
    parser = ArgumentParser(description="Runs node")
    parser.add_argument("--inspect", action="store_true")
    parser.add_argument("--inspect-brk", action="store_true")
    parser.add_argument("--shell", action="store_true")

    args = Dodo.parse_args(parser)
    args.cwd = Dodo.get_config("/NODE/cwd")
    args.node = Dodo.get_config("/NODE/node", "node")
    args.entrypoint = Dodo.get_config("/NODE/entrypoint", "index.js")

    # Raise an error if something is not right
    if False:
        raise CommandError("Oops")

    return args
Exemplo n.º 7
0
def _args():
    Dodo.parser.add_argument("yarn_args", nargs="?")
    Dodo.parser.add_argument("--name")
    Dodo.parser.add_argument("--local", "-l", action="store_true")
    args = Dodo.parse_args()
    args.yarn = "yarn"
    args.cwd = Dodo.get_config("/NODE/cwd")
    return args
Exemplo n.º 8
0
def _args():
    Dodo.parser.description = "Runs make"

    Dodo.parser.add_argument("make_args", nargs="?")
    Dodo.parser.add_argument("--cat", action="store_true")
    Dodo.parser.add_argument("--edit", action="store_true")

    args = Dodo.parse_args()
    args.cwd = Dodo.get_config("/MAKE/cwd")
    args.file = Dodo.get_config("/MAKE/file", "Makefile")

    global_config = load_global_config_parser()
    args.editor = global_config_get(global_config, "settings", "editor")

    # Raise an error if something is not right
    if False:
        raise CommandError("Oops")

    return args
Exemplo n.º 9
0
def _args():
    Dodo.parser.add_argument("pytest_args", nargs="?")
    Dodo.parser.add_argument("--show-report", action="store_true")
    args = Dodo.parse_args()
    args.no_capture = not Dodo.get_config("/PYTEST/capture", True)
    args.reuse_db = Dodo.get_config("/PYTEST/reuse_db", False)
    args.html_report = Dodo.get_config("/PYTEST/html_report", None)
    args.test_file = Dodo.get_config("/PYTEST/test_file", None)
    args.pytest_ini_filename = Dodo.get_config("/PYTEST/pytest_ini", None)
    args.maxfail = Dodo.get_config("/PYTEST/maxfail", None)
    args.pytest = Dodo.get_config("/PYTEST/pytest", "pytest")
    args.cwd = Dodo.get_config("/PYTEST/cwd", Dodo.get_config("/ROOT/src_dir"))
    args.browser = global_config_get(None,
                                     "settings",
                                     "browser",
                                     default="firefox")
    return args
Exemplo n.º 10
0
def _all_hooks():
    command_dirs = get_command_dirs_from_config(Dodo.get_config())
    result = defaultdict(lambda: {})
    for command_dir in command_dirs:
        hooks_path = os.path.join(command_dir, 'git_hooks')
        for prefix in prefixes:
            pattern = os.path.join(hooks_path, '%s-*.py' % prefix)
            for hook_filename in glob.glob(pattern):
                hook_name = os.path.splitext(
                    os.path.basename(hook_filename))[0]
                result[prefix][hook_name] = hook_filename
    return result
Exemplo n.º 11
0
def _create_docker_options(salt_src_dir, salt_master_filename):
    docker_options = Dodo.get_config().setdefault('DOCKER', {}).setdefault(
        'options', {})

    if Dodo.command_name not in docker_options:
        docker_options[Dodo.command_name] = dict(
            volume_map={salt_src_dir: '/srv/salt-deploy/src'},
            variable_map={'SSH_AUTH_SOCK': '/.ssh-agent/socket'},
            volumes_from_list=['ssh-agent'],
            image='deploy-tools:base')

    docker_options[Dodo.command_name].setdefault(
        'volume_map', {})[salt_master_filename] = '/etc/salt/master'
Exemplo n.º 12
0
def _args():  # noqa
    parser = ArgumentParser(
        description=('Deploys a ansible script to a ssh server'))
    parser.add_argument(
        "--bash",
        action="store_true",
        help='Drop into a bash shell instead of calling ansible')

    args = Dodo.parse_args(parser)
    args.playbook = Dodo.get_config('/ANSIBLE/playbook')
    args.ansible_src_dir = Dodo.get_config('/ANSIBLE/src_dir')
    args.target_docker_image = Dodo.get_config('/ANSIBLE/target_docker_image',
                                               None)
    args.host_name = Dodo.get_config('/ANSIBLE/host_name', None)

    if args.host_name and args.target_docker_image:
        raise CommandError('Both host_name and target_docker_image supplied')

    if args.target_docker_image:
        args.ssh_public_key = os.path.expandvars(
            '$HOME/.ssh/%s.pub' % Dodo.get_config('/SSH/key_name'))

    return args
Exemplo n.º 13
0

def _args():
    parser = ArgumentParser()
    parser.add_argument('host')
    args = Dodo.parse_args(parser)
    return args


def _get_timestamp(fn):
    return fn.split('_')[-1]


if Dodo.is_main(__name__, safe=True):
    args = _args()
    project_name = Dodo.get_config('/ROOT/project_name')
    cmd = 'root@{host}:/srv/{projectName}/dumps'.format(
        host=args.host, projectName=project_name)
    dumps_dir = '/srv/%s/dumps' % project_name

    merge_into_config(
        Dodo.get_config('/DOCKER').setdefault('options', {}),
        {Dodo.command_name: add_ssh_agent_args({'is_interactive': False})})

    dump_fns = Dodo.run([
        'ssh',
        'root@%s' % args.host,
        'ls',
        os.path.join(dumps_dir, '*.sql'),
    ],
                        capture=True).split()
Exemplo n.º 14
0
from argparse import ArgumentParser
import os

from plumbum.cmd import whoami

from dodo_commands import Dodo


def _args():
    parser = ArgumentParser()
    args = Dodo.parse_args(parser)
    return args


if Dodo.is_main(__name__):
    args = _args()
    me = whoami()[:-1]
    src_dir = Dodo.get_config("/ROOT/src_dir")
    Dodo.run(
        ["sudo", "chown", "-R",
         "%s:%s" % (me, me),
         os.path.basename(src_dir)],
        cwd=os.path.dirname(src_dir))
Exemplo n.º 15
0
def _docker_image(name):
    return Dodo.get_config('DOCKER_IMAGES/%s/image' % name, name)
Exemplo n.º 16
0
def add_name_argument(parser, choices=None):
    parser.add_argument('name',
                        help='Identifies docker image in /DOCKER_IMAGES',
                        choices=choices
                        or Dodo.get_config('/DOCKER_IMAGES', {}).keys())
Exemplo n.º 17
0
from dodo_commands import Dodo
from dodo_commands.framework.util import bordered


def _args():
    parser = ArgumentParser()
    parser.add_argument('--checkout')
    parser.add_argument('--prune', action='store_true')
    args = Dodo.parse_args(parser)
    return args


if Dodo.is_main(__name__):
    args = _args()
    src_dir = Dodo.get_config('/ROOT/src_dir')
    for repo in (os.listdir(src_dir) + ['.']):
        repo_dir = os.path.join(src_dir, repo)
        if os.path.exists(os.path.join(repo_dir, '.git')):
            with local.cwd(repo_dir):
                if args.prune:
                    print(git('remote', 'prune', 'origin'))

                print(bordered(repo))
                if args.checkout:
                    try:
                        git('checkout', args.checkout)
                    except:
                        print('Could not checkout to %s' % args.checkout)
                        pass
                print(git('rev-parse', '--abbrev-ref', 'HEAD'))
Exemplo n.º 18
0
from dodo_commands import Dodo
from dodo_commands.framework.decorator_scope import DecoratorScope
from dodo_commands.framework.util import to_arg_list
from dodo_docker_commands.decorators.docker import invert_path


def _args():
    Dodo.parser.add_argument("yarn_args", nargs="?")
    Dodo.parser.add_argument("--name")
    Dodo.parser.add_argument("--local", "-l", action="store_true")
    args = Dodo.parse_args()
    args.yarn = "yarn"
    args.cwd = Dodo.get_config("/NODE/cwd")
    return args


if Dodo.is_main(__name__, safe=True):
    args = _args()

    if args.name:
        Dodo.get_config("/DOCKER").setdefault("options", {}).setdefault(
            "yarn", {})["name"] = args.name

    if args.local:
        with DecoratorScope("docker", remove=True):
            Dodo.run([args.yarn, *to_arg_list(args.yarn_args)],
                     cwd=invert_path(args.cwd))
    else:
        Dodo.run([args.yarn, *to_arg_list(args.yarn_args)], cwd=args.cwd)