id = "cdrdao"
name = "cdrdao"
homepage = "https://cdrdao.sourceforge.net/"
description = "Record CDs in Disk-At-Once mode"
executables = ["cdrdao"]
[dotfiles]
paths = ["~/.cdrdao"]
secret = []
[commands]
format = 1
label = "Read, write or inspect a CD"
description = "Run one cdrdao command (such as read-cd, write, copy or disk-info) against a drive and optional toc-file. Driver, session and paranoia options are left out."
quality = "ai-draft"
parser = { end_of_options = "--", interleave = "permute", long_equals = false, short_attached = false, short_bundles = false }
[[commands.source]]
id = "man"
kind = "manual"
url = "https://github.com/cdrdao/cdrdao/blob/master/dao/cdrdao.man"
revision = "2026-10-27"
evidence = """
.RB { show-toc|toc-info|toc-size|read-toc|read-cd|read-cddb|show-data|read-test|disk-info|discid|msinfo|drive-info|unlock|scanbus|simulate|write|copy|blank }
.RB [ --device
.RB [ --simulate ]
.RB [ --speed
.RB [ --datafile
.RB [ --overburn ]
.RB [ --eject ]
.RI toc-file
.BI \\--device " [prot:]bus,id,lun"
.BI \\--speed " value"
.BI \\--datafile " file"
.BI \\--overburn
.BI \\--eject
"""
[[commands.field]]
id = "command"
label = "Command"
type = "enum"
position = 0
choices = [{ value = "show-toc", label = "show-toc" }, { value = "toc-info", label = "toc-info" }, { value = "toc-size", label = "toc-size" }, { value = "read-toc", label = "read-toc" }, { value = "read-cd", label = "read-cd" }, { value = "read-cddb", label = "read-cddb" }, { value = "show-data", label = "show-data" }, { value = "read-test", label = "read-test" }, { value = "disk-info", label = "disk-info" }, { value = "discid", label = "discid" }, { value = "msinfo", label = "msinfo" }, { value = "drive-info", label = "drive-info" }, { value = "unlock", label = "unlock" }, { value = "blank", label = "blank" }, { value = "scanbus", label = "scanbus" }, { value = "simulate", label = "simulate" }, { value = "write", label = "write" }, { value = "copy", label = "copy" }]
sources = ["man"]
[[commands.field]]
id = "toc_file"
label = "TOC file"
description = "Needed by commands that read or write a toc-file; copy and scanbus do not use one."
type = "path"
position = 1
path = { kind = "file", role = "input" }
sources = ["man"]
[[commands.field]]
id = "device"
label = "Device"
description = "SCSI/ATAPI address such as 0,2,0 or a device node."
type = "string"
option = ["--device"]
sources = ["man"]
[[commands.field]]
id = "datafile"
label = "Data file"
type = "path"
option = ["--datafile"]
path = { kind = "file", role = "input" }
sources = ["man"]
[[commands.field]]
id = "speed"
label = "Speed"
type = "integer"
option = ["--speed"]
sources = ["man"]
[[commands.field]]
id = "simulate"
label = "Simulate only"
type = "boolean"
option = ["--simulate"]
sources = ["man"]
[[commands.field]]
id = "overburn"
label = "Overburn"
type = "boolean"
option = ["--overburn"]
sources = ["man"]
[[commands.field]]
id = "eject"
label = "Eject afterwards"
type = "boolean"
option = ["--eject"]
sources = ["man"]
[[commands.task]]
id = "rip"
label = "Copy a CD to an image"
fields = ["command", "device", "datafile", "toc_file"]
required = ["command", "toc_file"]
set = { command = ["read-cd"] }
[[commands.task]]
id = "burn"
label = "Write a CD from a toc-file"
fields = ["command", "device", "speed", "simulate", "eject", "toc_file"]
required = ["command", "toc_file"]
set = { command = ["write"] }
[[commands.group]]
id = "basic"
label = "Basic"
fields = ["command", "toc_file", "device", "datafile"]
[[commands.group]]
id = "advanced"
label = "Advanced"
fields = ["speed", "simulate", "overburn", "eject"]