def parse_cli
cli.defaults = { info: false, processing: false, silent: false }
cli.parse do |opt|
cli.opt_object(opt, [:project, :dataset_opt])
cli.opt_filter_datasets(opt)
opt.on(
'-i', '--info',
'Print additional information on each dataset'
) { |v| cli[:info] = v }
opt.on(
'-p', '--processing',
'Print information on processing advance'
) { |v| cli[:processing] = v }
opt.on(
'-t', '--task-status',
'Print the status of each processing step'
) { |v| cli[:taskstatus] = v }
opt.on(
'-m', '--metadata STRING',
'Print name and metadata field only',
'If set, ignores --info and forces --tab (without header)'
) { |v| cli[:datum] = v }
opt.on(
'-f', '--fields STR1,STR2,STR3', Array,
'Comma-delimited metadata fields to print'
) { |v| cli[:fields] = v }
opt.on(
'--tab',
'Return a tab-delimited table'
) { |v| cli[:tabular] = v }
opt.on(
'-o', '--output PATH',
'Create output file instead of returning to STDOUT'
) { |v| cli[:output] = v }
opt.on(
'-s', '--silent',
'No output and exit with non-zero status if the dataset list is empty'
) { |v| cli[:silent] = v }
opt.on(
'--exec CMD',
'Command to execute per dataset, with the following token variables:',
'~ {{dataset}}: Name of the dataset',
'~ {{project}}: Path to the project'
) { |v| cli[:exec] = v }
end
end