[[command]]
name = "periphery"
description = "Static analysis tool that identifies unused code in Swift projects. The scan subcommand invokes xcodebuild or swift build to produce an index store, then analyzes it for unreferenced declarations — this means scan executes arbitrary build scripts, build phases, and package plugins unless --skip-build is used. Periphery never modifies source code and has no auto-removal feature. check-update makes a GitHub API call. clear-cache deletes Periphery's local cache directory. --write-baseline and --write-results write report files to user-specified paths. Actively maintained with roughly monthly releases."
url = "https://github.com/peripheryapp/periphery"
bare_flags = ["--help", "--version", "-V", "-h"]

[[command.sub]]
name = "scan"
level = "SafeRead"
standalone = [
    "--bazel", "--bazel-check-visibility",
    "--clean-build",
    "--disable-redundant-public-analysis", "--disable-unused-import-analysis",
    "--disable-update-check",
    "--exclude-tests",
    "--help",
    "--no-color", "--no-superfluous-ignore-comments",
    "--quiet",
    "--relative-results",
    "--retain-assign-only-properties", "--retain-codable-properties",
    "--retain-encodable-properties", "--retain-objc-accessible",
    "--retain-objc-annotated", "--retain-public",
    "--retain-swift-ui-previews",
    "--retain-unused-protocol-func-params",
    "--skip-build", "--skip-schemes-validation",
    "--strict", "--superfluous-ignore-comments",
    "--verbose",
    "-h",
]
valued = [
    "--baseline", "--bazel-filter", "--bazel-index-store",
    "--color", "--config",
    "--exclude-targets", "--external-codable-protocols",
    "--external-encodable-protocols", "--external-test-case-classes",
    "--format",
    "--generic-project-config",
    "--index-exclude", "--index-store-path",
    "--json-package-manifest-path",
    "--no-retain-spi",
    "--project", "--project-root",
    "--report-exclude", "--report-include",
    "--retain-assign-only-property-types", "--retain-files",
    "--retain-unused-imported-modules",
    "--schemes",
    "--write-baseline", "--write-results",
]

[[command.sub]]
name = "check-update"
standalone = ["--help", "-h"]

[[command.sub]]
name = "version"
standalone = ["--help", "-h"]

[[command.sub]]
name = "clear-cache"
level = "SafeWrite"
standalone = ["--help", "-h"]
