Complete list of available actions. See tasks/ directory for usage examples.
Creates multiple directories.
file.NewCreateDirectoriesAction(logger).WithParameters(
engine.StaticParameter{Value: "/path/to/root"},
engine.StaticParameter{Value: []string{"src", "tests", "docs"}},
)Writes content to files.
file.NewWriteFileAction(logger).WithParameters(
engine.StaticParameter{Value: "/path/to/file"},
engine.StaticParameter{Value: []byte("content")},
true, // overwrite
nil, // inputBuffer
)Reads file contents.
var content []byte
file.NewReadFileAction("/path/to/file", &content, logger)Compresses files (gzip).
file.NewCompressFileAction(logger).WithParameters(
engine.StaticParameter{Value: "/source/file"},
engine.StaticParameter{Value: "/dest/file.gz"},
file.GzipCompression,
)Decompresses files with auto-detection.
file.NewDecompressFileAction(logger).WithParameters(
engine.StaticParameter{Value: "/source/file.gz"},
engine.StaticParameter{Value: "/dest/file"},
"", // auto-detect
)Copies files and directories.
file.NewCopyFileAction(logger).WithParameters(
engine.StaticParameter{Value: "/source"},
engine.StaticParameter{Value: "/dest"},
true, // createDirs
false, // recursive
)Safely deletes files and directories.
file.NewDeletePathAction(logger).WithParameters(
engine.StaticParameter{Value: "/path/to/delete"},
true, // recursive
false, // dryRun
)Replaces text using regex patterns.
file.NewReplaceLinesAction(logger).WithParameters(
engine.StaticParameter{Value: "/path/to/file"},
map[*regexp.Regexp]engine.ActionParameter{
regexp.MustCompile("old"): engine.StaticParameter{Value: "new"},
},
)Changes file ownership.
file.NewChangeOwnershipAction(logger).WithParameters(
engine.StaticParameter{Value: "/path"},
engine.StaticParameter{Value: "user"},
engine.StaticParameter{Value: "group"},
true, // recursive
)Changes file permissions.
file.NewChangePermissionsAction(logger).WithParameters(
engine.StaticParameter{Value: "/path"},
engine.StaticParameter{Value: "755"},
true, // recursive
)Moves/renames files.
file.NewMoveFileAction(logger).WithParameters(
engine.StaticParameter{Value: "/source"},
engine.StaticParameter{Value: "/dest"},
true, // createDirs
)Extracts archives (tar, zip) with security features.
file.NewExtractFileAction(logger).WithParameters(
engine.StaticParameter{Value: "/archive.tar"},
engine.StaticParameter{Value: "/extract/dir"},
file.AutoDetect, // or file.TarArchive, file.ZipArchive
)Gets container status by ID or name.
docker.NewGetContainerStateAction(logger, "container1", "container2")Gets status of all containers.
docker.NewGetAllContainersStateAction(logger)Starts Docker Compose services.
docker.NewDockerComposeUpAction(logger).WithParameters(
engine.StaticParameter{Value: []string{"web", "db"}},
engine.StaticParameter{Value: "/path/to/compose"},
)Stops Docker Compose services.
docker.NewDockerComposeDownAction(logger).WithParameters(
engine.StaticParameter{Value: []string{"web"}},
engine.StaticParameter{Value: "/path/to/compose"},
)Executes commands in containers.
docker.NewDockerComposeExecAction(logger).WithParameters(
engine.StaticParameter{Value: "web"},
engine.StaticParameter{Value: []string{"ls", "-la"}},
engine.StaticParameter{Value: "/path/to/compose"},
)Runs Docker containers.
docker.NewDockerRunAction(logger).WithParameters(
engine.StaticParameter{Value: "nginx:latest"},
engine.StaticParameter{Value: []string{"nginx", "-g", "daemon off;"}},
engine.StaticParameter{Value: []string{"-p", "8080:80"},
nil, // inputBuffer
)Performs health checks with retries.
docker.NewCheckContainerHealthAction(logger).WithParameters(
engine.StaticParameter{Value: "container"},
engine.StaticParameter{Value: 3}, // maxRetries
engine.StaticParameter{Value: time.Second}, // retryDelay
engine.StaticParameter{Value: "/workdir"},
)Loads images from tar files.
docker.NewDockerLoadAction(logger, "/path/to/image.tar")
// With options:
docker.NewDockerLoadAction(logger, "/path/to/image.tar",
docker.WithPlatform("linux/amd64"),
docker.WithQuiet(),
)Removes Docker images.
// By name
docker.NewDockerImageRmByNameAction(logger, "nginx:latest")
// By ID
docker.NewDockerImageRmByIDAction(logger, "sha256:abc123")
// With options:
docker.NewDockerImageRmByNameAction(logger, "nginx:latest",
docker.WithForce(),
docker.WithNoPrune(),
)Lists Docker images.
docker.NewDockerImageListAction(logger)
// With options:
docker.NewDockerImageListAction(logger,
docker.WithAll(),
docker.WithDigests(),
docker.WithFilter("dangling=true"),
)Lists Docker Compose stacks.
docker.NewDockerComposeLsAction(logger)
// With options:
docker.NewDockerComposeLsAction(logger,
docker.WithAll(),
docker.WithWorkingDir("/path/to/compose"),
)Lists services in Docker Compose stacks.
docker.NewDockerComposePsAction(logger, []string{"web"})
// With options:
docker.NewDockerComposePsAction(logger, []string{"web"},
docker.WithAll(),
docker.WithWorkingDir("/path/to/compose"),
)Lists Docker containers.
docker.NewDockerPsAction(logger)
// With options:
docker.NewDockerPsAction(logger,
docker.WithPsAll(),
docker.WithPsFilter("status=running"),
)Pulls Docker images.
images := map[string]docker.ImageSpec{
"nginx": {Image: "nginx", Tag: "latest", Architecture: "amd64"},
}
docker.NewDockerPullAction(logger, images)
// With options:
docker.NewDockerPullAction(logger, images,
docker.WithAllTags(),
docker.WithPullPlatform("linux/amd64"),
)Pulls images for multiple architectures.
images := map[string]docker.MultiArchImageSpec{
"nginx": {
Image: "nginx",
Tag: "latest",
Architectures: []string{"amd64", "arm64"},
},
}
docker.NewDockerPullMultiArchAction(logger, images)Executes generic Docker commands.
docker.NewDockerGenericAction(logger, []string{"images", "-q"})Gets systemd service status.
system.NewGetServiceStatusAction(logger, "nginx", "mysql")Controls systemd services.
system.NewManageServiceAction(logger).WithParameters(
engine.StaticParameter{Value: "nginx"},
engine.StaticParameter{Value: "restart"},
)Shuts down or restarts system.
system.NewShutdownAction(logger).WithParameters(
engine.StaticParameter{Value: "restart"},
engine.StaticParameter{Value: "5"}, // delay in minutes
)Installs packages (apt/brew).
system.NewUpdatePackagesAction(logger, []string{"git", "curl"})Waits for specified duration.
utility.NewWaitAction(logger).WithParameters(
engine.StaticParameter{Value: time.Second * 5},
)Conditional execution based on custom checks.
utility.NewPrerequisiteCheckAction(logger).WithParameters(
engine.StaticParameter{Value: func(ctx context.Context) (bool, error) {
// custom check logic
return true, nil
}},
)Gets network interface information.
utility.NewFetchInterfacesAction(logger)Reads MAC address of network interface.
utility.NewReadMacAction(logger).WithParameters(
engine.StaticParameter{Value: "eth0"},
)See tasks/ directory for complete workflows:
NewFileOperationsTask()- File management pipelineNewDockerSetupTask()- Docker environment setupNewPackageManagementTask()- Package installationNewExtractOperationsTask()- Archive extraction