# TOML Decode from TOML. Note that `yq` does not yet support outputting in TOML format (and therefore it cannot roundtrip) ## Parse: Simple Given a sample.toml file of: ```toml A = "hello" B = 12 ``` then ```bash yq -oy '.' sample.toml ``` will output ```yaml A: hello B: 12 ``` ## Parse: Deep paths Given a sample.toml file of: ```toml person.name = "hello" person.address = "12 cat st" ``` then ```bash yq -oy '.' sample.toml ``` will output ```yaml person: name: hello address: 12 cat st ``` ## Encode: Scalar Given a sample.toml file of: ```toml person.name = "hello" person.address = "12 cat st" ``` then ```bash yq '.person.name' sample.toml ``` will output ```yaml hello ``` ## Parse: inline table Given a sample.toml file of: ```toml name = { first = "Tom", last = "Preston-Werner" } ``` then ```bash yq -oy '.' sample.toml ``` will output ```yaml name: first: Tom last: Preston-Werner ``` ## Parse: Array Table Given a sample.toml file of: ```toml [owner.contact] name = "Tom Preston-Werner" age = 36 [[owner.addresses]] street = "first street" suburb = "ok" [[owner.addresses]] street = "second street" suburb = "nice" ``` then ```bash yq -oy '.' sample.toml ``` will output ```yaml owner: contact: name: Tom Preston-Werner age: 36 addresses: - street: first street suburb: ok - street: second street suburb: nice ``` ## Parse: Array of Array Table Given a sample.toml file of: ```toml [[fruits]] name = "apple" [[fruits.varieties]] # nested array of tables name = "red delicious" ``` then ```bash yq -oy '.' sample.toml ``` will output ```yaml fruits: - name: apple varieties: - name: red delicious ``` ## Parse: Empty Table Given a sample.toml file of: ```toml [dependencies] ``` then ```bash yq -oy '.' sample.toml ``` will output ```yaml dependencies: {} ``` ## Roundtrip: inline table attribute Given a sample.toml file of: ```toml name = { first = "Tom", last = "Preston-Werner" } ``` then ```bash yq '.' sample.toml ``` will output ```yaml name = { first = "Tom", last = "Preston-Werner" } ``` ## Roundtrip: table section Given a sample.toml file of: ```toml [owner.contact] name = "Tom" age = 36 ``` then ```bash yq '.' sample.toml ``` will output ```yaml [owner.contact] name = "Tom" age = 36 ``` ## Roundtrip: array of tables Given a sample.toml file of: ```toml [[fruits]] name = "apple" [[fruits.varieties]] name = "red delicious" ``` then ```bash yq '.' sample.toml ``` will output ```yaml [[fruits]] name = "apple" [[fruits.varieties]] name = "red delicious" ``` ## Roundtrip: arrays and scalars Given a sample.toml file of: ```toml A = ["hello", ["world", "again"]] B = 12 ``` then ```bash yq '.' sample.toml ``` will output ```yaml A = ["hello", ["world", "again"]] B = 12 ``` ## Roundtrip: simple Given a sample.toml file of: ```toml A = "hello" B = 12 ``` then ```bash yq '.' sample.toml ``` will output ```yaml A = "hello" B = 12 ``` ## Roundtrip: deep paths Given a sample.toml file of: ```toml [person] name = "hello" address = "12 cat st" ``` then ```bash yq '.' sample.toml ``` will output ```yaml [person] name = "hello" address = "12 cat st" ``` ## Roundtrip: empty array Given a sample.toml file of: ```toml A = [] ``` then ```bash yq '.' sample.toml ``` will output ```yaml A = [] ``` ## Roundtrip: sample table Given a sample.toml file of: ```toml var = "x" [owner.contact] name = "Tom Preston-Werner" age = 36 ``` then ```bash yq '.' sample.toml ``` will output ```yaml var = "x" [owner.contact] name = "Tom Preston-Werner" age = 36 ``` ## Roundtrip: empty table Given a sample.toml file of: ```toml [dependencies] ``` then ```bash yq '.' sample.toml ``` will output ```yaml [dependencies] ``` ## Roundtrip: comments Given a sample.toml file of: ```toml # This is a comment A = "hello" # inline comment B = 12 # Table comment [person] name = "Tom" # name comment ``` then ```bash yq '.' sample.toml ``` will output ```yaml # This is a comment A = "hello" # inline comment B = 12 # Table comment [person] name = "Tom" # name comment ``` ## Roundtrip: sample from web Given a sample.toml file of: ```toml # This is a TOML document title = "TOML Example" [owner] name = "Tom Preston-Werner" dob = 1979-05-27T07:32:00-08:00 [database] enabled = true ports = [8000, 8001, 8002] data = [["delta", "phi"], [3.14]] temp_targets = { cpu = 79.5, case = 72.0 } # [servers] yq can't do this one yet [servers.alpha] ip = "10.0.0.1" role = "frontend" [servers.beta] ip = "10.0.0.2" role = "backend" ``` then ```bash yq '.' sample.toml ``` will output ```yaml # This is a TOML document title = "TOML Example" [owner] name = "Tom Preston-Werner" dob = 1979-05-27T07:32:00-08:00 [database] enabled = true ports = [8000, 8001, 8002] data = [["delta", "phi"], [3.14]] temp_targets = { cpu = 79.5, case = 72.0 } # [servers] yq can't do this one yet [servers.alpha] ip = "10.0.0.1" role = "frontend" [servers.beta] ip = "10.0.0.2" role = "backend" ``` ## Encode: Simple mapping produces table section Given a sample.yml file of: ```yaml arg: hello: foo ``` then ```bash yq -o toml '.' sample.yml ``` will output ```toml [arg] hello = "foo" ```