"""Build step class for executing ninja commands."""

from __future__ import absolute_import
import os

from slave.step import shell_step


class NinjaStep(shell_step.ShellStep):
  """Build step class to call ninja commands as recipe steps."""

  def __init__(self, out_dir, target, cwd, jobs,  *args, **kwargs):
    cmd_list = [
        'ninja',
        '-C',
        out_dir,
        '-k',
        '500',
        '-j',
        str(jobs),
        target
    ]
    name = 'ninja {}'.format(target)
    super(NinjaStep, self).__init__(
        command=cmd_list, name=name, cwd=cwd, *args, **kwargs)
