id = "atool"
name = "atool"
homepage = "https://savannah.nongnu.org/projects/atool/"
description = "Archival front-end."
executables = ["atool", "aunpack", "apack", "als", "acat", "adiff", "arepack"]
[dotfiles]
paths = ["~/.atoolrc"]
secret = []
[commands]
format = 1
label = "Work with archives"
description = "List, extract or create archives with atool, which picks the right archiver by file extension. Archive-specific format options are left out."
quality = "ai-draft"
parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = true }
[[commands.source]]
id = "man"
kind = "manual"
url = "https://man.archlinux.org/man/atool.1.en"
revision = "2026-10-27"
evidence = """
-l, --list
-x, --extract
-X, --extract-to=PATH
-a, --add
-c, --cat
-F, --format=EXTENSION
-S, --simulate
-f, --force
-D, --subdir
-q, --quiet
-v, --verbose
"""
[[commands.field]]
id = "list"
label = "List contents"
type = "boolean"
option = ["--list", "-l"]
sources = ["man"]
[[commands.field]]
id = "extract"
label = "Extract"
type = "boolean"
option = ["--extract", "-x"]
sources = ["man"]
[[commands.field]]
id = "add"
label = "Create / add to archive"
description = "The first positional argument is then the archive to create."
type = "boolean"
option = ["--add", "-a"]
sources = ["man"]
[[commands.field]]
id = "files"
label = "Archive and files"
description = "Archives to list or extract; for create, the new archive followed by the files to add."
type = "path"
path = { kind = "any", role = "input" }
position = 0
multiple = true
min = 1
sources = ["man"]
[[commands.field]]
id = "extract_to"
label = "Extract into directory"
type = "path"
path = { kind = "directory", role = "output" }
option = ["--extract-to", "-X"]
sources = ["man"]
[[commands.field]]
id = "subdir"
label = "Always extract into a subdirectory"
type = "boolean"
option = ["--subdir", "-D"]
sources = ["man"]
[[commands.field]]
id = "format"
label = "Force archive format"
description = "File extension, for example tar.gz."
type = "string"
option = ["--format", "-F"]
sources = ["man"]
[[commands.field]]
id = "force"
label = "Overwrite existing files"
type = "boolean"
option = ["--force", "-f"]
effect = "overwrite"
sources = ["man"]
[[commands.field]]
id = "simulate"
label = "Simulate only"
type = "boolean"
option = ["--simulate", "-S"]
sources = ["man"]
[[commands.field]]
id = "quiet"
label = "Quiet"
type = "boolean"
option = ["--quiet", "-q"]
sources = ["man"]
[[commands.task]]
id = "list"
label = "List archive contents"
set = { list = [true] }
lock = ["list"]
fields = ["list", "files", "format"]
required = ["files"]
[[commands.task]]
id = "extract"
label = "Extract archive"
set = { extract = [true] }
lock = ["extract"]
fields = ["extract", "files", "extract_to", "subdir", "force"]
required = ["files"]
[[commands.task]]
id = "create"
label = "Create archive"
set = { add = [true] }
lock = ["add"]
fields = ["add", "files", "format", "force"]
required = ["files"]
[[commands.group]]
id = "basic"
label = "Basic"
fields = ["list", "extract", "add", "files", "extract_to", "subdir"]
[[commands.group]]
id = "advanced"
label = "Advanced"
fields = ["format", "force", "simulate", "quiet"]