# File lib/zfs/dataset.rb, line 23 def self.list(properties=[]) datasets = [] cmd_properties = ["name"] + properties cmd="zfs list -H -t filesystem,volume -o #{cmd_properties.join(",")} -s name" puts cmd if $debug IO.popen cmd do |io| io.readlines.each do |line| values = line.split name = values.shift dataset_properties = {} properties.each_with_index do |property_name, i| value = values[i] next if value == '-' dataset_properties[property_name] = value end datasets << self.new(name, dataset_properties) end end datasets end