Class BunTask
- All Implemented Interfaces:
Comparable<org.gradle.api.Task>,org.gradle.api.internal.DynamicObjectAware,org.gradle.api.internal.IConventionAware,org.gradle.api.internal.TaskInternal,org.gradle.api.Named,org.gradle.api.plugins.ExtensionAware,org.gradle.api.Task,org.gradle.process.BaseExecSpec,org.gradle.process.ExecSpec,org.gradle.process.ProcessForkOptions,org.gradle.util.Configurable<org.gradle.api.Task>
Exec task specialized for invoking the Bun executable.
This task acts as a thin wrapper around Exec that:
- Defers resolution of the Bun executable until execution time.
- Accumulates Bun command-line arguments independently of Gradle’s built-in argument handling.
- Provides a clear failure mode if Bun has not been set up prior to execution.
Typical usage is internal to the plugin. Tasks such as bunInstall,
bunTest, and bunRun configure an instance of this task by:
- Declaring a dependency on
bunSetup. - Setting the Bun executable during
doFirst. - Providing Bun-specific arguments via
args(String...).
This design keeps configuration-time logic minimal and ensures the Bun executable path is resolved only after installation has completed.
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.gradle.api.Named
org.gradle.api.Named.Namer -
Field Summary
Fields inherited from interface org.gradle.api.Task
TASK_ACTION, TASK_CONSTRUCTOR_ARGS, TASK_DEPENDS_ON, TASK_DESCRIPTION, TASK_GROUP, TASK_NAME, TASK_OVERWRITE, TASK_TYPE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidAdds one or more command-line arguments to be passed to Bun.protected voidexec()Executes the Bun command.Returns the Bun executable for this task.org.gradle.api.tasks.ExecSets the command-line arguments to be passed to Bun.voidsetBunExecutable(File bunExecutable) Sets the Bun executable to be used when this task executes.Methods inherited from class org.gradle.api.tasks.Exec
getArgs, getErrorOutput, getStandardInput, getStandardOutput, isIgnoreExitValue, setArgs, setErrorOutput, setIgnoreExitValue, setStandardInput, setStandardOutputMethods inherited from class org.gradle.api.tasks.AbstractExecTask
args, args, commandLine, commandLine, copyTo, environment, environment, executable, getArgumentProviders, getCommandLine, getEnvironment, getExecActionFactory, getExecutable, getExecutionResult, getObjectFactory, getWorkingDir, setCommandLine, setCommandLine, setCommandLine, setEnvironment, setExecutable, setExecutable, setWorkingDir, setWorkingDir, workingDirMethods inherited from class org.gradle.api.internal.ConventionTask
conventionMapping, conventionMapping, getConventionMappingMethods inherited from class org.gradle.api.DefaultTask
compareTo, configure, dependsOn, doFirst, doFirst, doFirst, doLast, doLast, doLast, finalizedBy, getActions, getAnt, getDependsOn, getDescription, getDestroyables, getDidWork, getEnabled, getExtensions, getFinalizedBy, getGroup, getInputs, getLocalState, getLogger, getLogging, getMustRunAfter, getName, getOutputs, getPath, getProject, getShouldRunAfter, getState, getTaskDependencies, getTemporaryDir, getTimeout, hasProperty, mustRunAfter, onlyIf, onlyIf, onlyIf, property, setActions, setDependsOn, setDescription, setDidWork, setEnabled, setFinalizedBy, setGroup, setMustRunAfter, setOnlyIf, setOnlyIf, setOnlyIf, setProperty, setShouldRunAfter, shouldRunAfter, usesServiceMethods inherited from class org.gradle.api.internal.AbstractTask
acceptServiceReferences, appendParallelSafeAction, doNotTrackState, getAsDynamicObject, getIdentityPath, getImpliesSubProjects, getLifecycleDependencies, getOnlyIf, getReasonNotToTrackState, getReasonTaskIsIncompatibleWithConfigurationCache, getRequiredServices, getServices, getSharedResources, getStandardOutputCapture, getTaskActions, getTaskIdentity, getTemporaryDirFactory, hasTaskActions, injectIntoNewInstance, isCompatibleWithConfigurationCache, isEnabled, isHasCustomActions, notCompatibleWithConfigurationCache, prependParallelSafeAction, setImpliesSubProjectsMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.gradle.api.Task
doNotTrackState, notCompatibleWithConfigurationCache
-
Constructor Details
-
BunTask
public BunTask()
-
-
Method Details
-
getBunExecutable
Returns the Bun executable for this task.This property is marked
Internalso it does not participate in Gradle's up-to-date checks or task graph inputs.- Returns:
- the Bun executable file, or
nullif not yet set
-
setBunExecutable
Sets the Bun executable to be used when this task executes.This is typically called from a
doFirstaction to ensure the executable is resolved afterbunSetupcompletes.- Parameters:
bunExecutable- the Bun executable file
-
args
Adds one or more command-line arguments to be passed to Bun.Arguments are appended in the order provided and are not modified or validated by this task.
- Parameters:
args- the arguments to pass to Bun
-
setArgs
Sets the command-line arguments to be passed to Bun.This overrides the parent
Exec.setArgs(List)to ensure arguments are captured in the bunArgs list.- Specified by:
setArgsin interfaceorg.gradle.process.ExecSpec- Overrides:
setArgsin classorg.gradle.api.tasks.Exec- Parameters:
args- the arguments to pass to Bun
-
exec
protected void exec()Executes the Bun command.This method:
- Verifies that the Bun executable has been set.
- Configures the underlying
Exectask with the executable path. - Applies the collected Bun arguments.
- Delegates execution to
AbstractExecTask.exec().
- Overrides:
execin classorg.gradle.api.tasks.AbstractExecTask<org.gradle.api.tasks.Exec>- Throws:
IllegalStateException- if the Bun executable has not been set
-