saker.build Documentation TaskDoc JavaDoc

action

action [@command-file] [parameters] arguments...?

Invoke an action of a given repository.

Repository actions are arbitrary commands that a repository defines. They are basically a main function of the repository that can execute various operations based on the arguments passed to it.

Repositories are not required to support this, it is optional. See the documentation for the associated repository for more information.

@command-file
@command-file

File path prefixed with '@' to directly include arguments from the specified file. Each argument is on its separate line. They are directly inserted in place of the @command-file argument. The argument can appear anywhere on the command line. Escaping is not supported for arguments in the command file. The file path may be absolute or relative.

E.g: @path/to/arguments.txt

-storage-directory
-storage-directory <path> -storage-dir <path> -sd <path>

Specifies the storage directory that the environment can use to store its files and various data.

This is recommended to be the same that you use as the build environment storage directory.

-repository
-repository <classpath> -repo <classpath>
Multi-parameter.

Specifies the classpath of the repository.

The classpath may be an HTTP URL by starting it with the 'http://' or 'https://' phrases. It can also be a file path for the local file system.

It can also be in the format of 'nest:/version/<version-number>' where the <version-number> is the version of the saker.nest repository you want to use. The <version-number> can also be 'latest' in which case the most recent known saker.nest nest repository release is used.

This parameter and -direct-repo cannot be used together.

-repository-class
-repository-class <class name> -repo-class <class name>
Multi-parameter.

Specifies the name of the repository class to load.

The class should be an instance of saker.build.runtime.repository.SakerRepositoryFactory.

If not specified, the Java ServiceLoader facility is used to load the repository.

-direct-repo
-direct-repo <local-path>

Specifies that the repository should be loaded in a direct way.

When a direct repository is loaded, it is assumed that it was loaded by someone else to the specified path, and it can be used for this action.

The specified path should point to the directory where the classpath load request was issued.

This parameter is generally used when programatically starting new processes that execute repository actions. Developers should use the -repository parameter to specify the classpath instead.

This parameter and -repository cannot be used together.

-saker-jar
-saker-jar <path>

Specifies the location of the build system runtime.

The build system requires its distribution JAR for proper operation, as it may be necessary for some tasks to start new processes to do their work.

Under normal circumstances the build system can locate the appropriate JAR location based on the classpath of the current process. If it fails, an exception will be thrown and you might need to specify this if required.

The path will be resolved against the local file system, relative paths are resolved against the working directory of the process.

(If you ever encounter a bug in automatic resolution, please file an issue at https://github.com/sakerbuild/saker.build/issues)

arguments...
Positional parameter.

A list of string arguments that should be passed to the action.

The arguments will be directly passed to the repository to execute. Optional, zero arguments may be used.