// Copyright 2018 The Bazel Authors. All rights reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. package com.google.devtools.build.lib.skylarkbuildapi; import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable; import com.google.devtools.build.lib.skylarkinterface.SkylarkModule; import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory; import com.google.devtools.build.lib.skylarkinterface.SkylarkValue; import com.google.devtools.build.lib.syntax.EvalException; import com.google.devtools.build.lib.syntax.SkylarkDict; import com.google.devtools.build.lib.syntax.SkylarkList; import com.google.devtools.build.lib.syntax.SkylarkNestedSet; import java.io.IOException; /** Interface for actions in Skylark. */ @SkylarkModule( name = "Action", category = SkylarkModuleCategory.BUILTIN, doc = "An action created during rule analysis." + "
This object is visible for the purpose of testing, and may be obtained from an "
+ "Actions provider. It is normally not necessary "
+ "to access Action
objects or their fields within a rule's "
+ "implementation function. You may instead want to see the "
+ "Rules page for a general discussion of how "
+ "to use actions when defining custom rules, or the API "
+ "reference for creating actions."
+ "
Some fields of this object are only applicable for certain kinds of actions. "
+ "Fields that are inapplicable are set to None
.")
public interface ActionApi extends SkylarkValue {
@SkylarkCallable(
name = "mnemonic",
structField = true,
doc = "The mnemonic for this action."
)
public abstract String getMnemonic();
@SkylarkCallable(
name = "inputs",
doc = "A set of the input files of this action.",
structField = true)
public SkylarkNestedSet getSkylarkInputs();
@SkylarkCallable(
name = "outputs",
doc = "A set of the output files of this action.",
structField = true)
public SkylarkNestedSet getSkylarkOutputs();
@SkylarkCallable(
name = "argv",
doc =
"For actions created by ctx.actions.run() "
+ "or ctx.actions.run_shell() an immutable "
+ "list of the arguments for the command line to be executed. Note that "
+ "for shell actions the first two arguments will be the shell path "
+ "and \"-c\"
.",
structField = true,
allowReturnNones = true
)
public SkylarkList