Как позволить clojure сгенерировать этот простой файл YAML? - PullRequest
0 голосов
/ 23 января 2019

Я хочу, чтобы clojure сгенерировал этот простой ANSI-файл YAML:

- hosts: 172.16.10.104 
  tasks: 
    - name: ping
      ping: 

Я использую https://github.com/owainlewis/yaml для его генерации:

 (def data [{:hosts "172.16.10.104"}
         {:tasks [{
                   :name "ping",
                   :ping ""
                   }]}
         ])

и получил это:

- hosts: 172.16.10.104
- tasks:
    - name: ping
      ping: ''

Я хочу "задачи", а не "- задачи", как это исправить?

1 Ответ

0 голосов
/ 23 января 2019

Если вы структурируете свои данные следующим образом,

(def data [{:host  "172.16.10.104"
            :tasks [{:name "ping" :ping ""}]}])

тогда

(yaml/generate-string data :dumper-options {:flow-style :block})

выходы

"- host: 172.16.10.104\n  tasks:\n  - name: ping\n    ping: ''\n"

, который отформатирован, это:

- host: 172.16.10.104
  tasks:
  - name: ping
    ping: ''
...