id = "plutil" name = "plutil" description = "macOS tool that checks property list files for syntax errors, prints them, or converts them between formats." executables = ["plutil"] platforms = ["macos"] [commands] format = 1 label = "Check or convert plist" description = "Lint, print or convert property list files. Without an output path, -convert rewrites the file in place." quality = "ai-draft" base = "fig:plutil" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false } [[commands.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/plutil.ts" license = "MIT" [[commands.field]] id = "files" label = "Property list files" description = "Use - to read from standard input." type = "path" position = 0 multiple = true path = { kind = "file", role = "input" } sources = ["fig"] [[commands.field]] id = "lint" label = "Check syntax" type = "boolean" option = ["-lint"] sources = ["fig"] [[commands.field]] id = "print" label = "Print human-readable" type = "boolean" option = ["-p"] sources = ["fig"] [[commands.field]] id = "convert" label = "Convert to format" type = "string" option = ["-convert"] suggestions = [{ value = "xml1", label = "XML" }, { value = "binary1", label = "Binary" }, { value = "json", label = "JSON" }] effect = "overwrite" sources = ["fig"] [[commands.field]] id = "output" label = "Output path" description = "Only useful with a single file; - writes to stdout." type = "path" option = ["-o"] path = { kind = "file", role = "output", must_exist = false } effect = "overwrite" sources = ["fig"] [[commands.field]] id = "extension" label = "Output extension" type = "string" option = ["-e"] sources = ["fig"] [[commands.field]] id = "silent" label = "Silent on success" type = "boolean" option = ["-s"] sources = ["fig"] [[commands.field]] id = "readable" label = "Readable JSON" type = "boolean" option = ["-r"] sources = ["fig"] [[commands.task]] id = "lint" label = "Check syntax" set = { lint = [true] } fields = ["files", "silent"] required = ["files"] [[commands.task]] id = "to-json" label = "Convert to JSON" set = { convert = ["json"], readable = [true] } fields = ["files", "output", "readable"] required = ["files"] [[commands.task]] id = "print" label = "Print" set = { print = [true] } fields = ["files"] required = ["files"] [[commands.group]] id = "basic" label = "Basic" fields = ["files", "lint", "print", "convert", "output"] [[commands.group]] id = "advanced" label = "Advanced" fields = ["extension", "silent", "readable"]