Files
swift-inotify/Sources/TaskCLI/TaskCLI.docc/TaskCLI.md
T. R. Bernstein a942b15483
Some checks failed
Docs / docs (push) Has been cancelled
Docs / deploy (push) Has been cancelled
Add generate-docs command to build task
The Swift Docc has to run in a Linux container to be able to build the
documentation, as it needs access to the inotify.h header files.
2026-03-12 18:10:31 +01:00

1.9 KiB

TaskCLI

The build tool for the Swift Inotify project.

Overview

TaskCLI is a small command-line executable (exposed as task in Package.swift) that automates project-level workflows. Its primary purpose is running integration tests and generating documentation inside Linux Docker containers, so you can validate inotify-dependent code on the correct platform even when developing on macOS.

Running the Tests

swift run task test

This launches a swift:latest Docker container with the repository mounted at /code, then executes two test passes:

  1. All tests except InotifyLimitTests — the regular integration suite.
  2. Only InotifyLimitTests (with --skip-build) — tests that manipulate system-level inotify limits and must run in isolation.

The container is started with --security-opt systempaths=unconfined so that the limit tests can write to /proc/sys/fs/inotify/*.

Generating Documentation

swift run task generate-docs

This copies the project to a temporary directory, injects the swift-docc-plugin dependency via swift package add-dependency (if absent), and runs documentation generation inside a swift:latest Docker container. The resulting static sites are written to ./public/inotify/ and ./public/taskcli/, ready for deployment to GitHub Pages.

The working tree is never modified — all changes happen in the temporary copy, which is cleaned up automatically.

Verbosity

Pass one or more -v flags to increase log output:

Flag Level
(none) notice
-v info
-vv debug
-vvv trace

Prerequisites

Docker must be installed and running on the host machine. The container uses the linux/arm64 platform by default.

Topics

Commands

  • Command
  • TestCommand
  • GenerateDocsCommand

Configuration

  • GlobalOptions

Errors

  • GenerateDocsError