# Copyright 2020 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""Recipe that does nothing.

Useful for safely deleting builders that consume spec files, since it's not safe
to delete the builder and the spec file in the same CL. Instead we first change the
builder to use this recipe, then delete the spec file and builder.
"""


def RunSteps(api):
    del api


def GenTests(api):
    del api
    raise StopIteration()
