107: def getconfig
108: output = zonecfg :info
109:
110: name = nil
111: current = nil
112: hash = {}
113: output.split("\n").each do |line|
114: case line
115: when /^(\S+):\s*$/
116: name = $1
117: current = nil
118: when /^(\S+):\s*(.+)$/
119: hash[$1.intern] = $2
120: when /^\s+(\S+):\s*(.+)$/
121: if name
122: unless hash.include? name
123: hash[name] = []
124: end
125:
126: unless current
127: current = {}
128: hash[name] << current
129: end
130: current[$1.intern] = $2
131: else
132: err "Ignoring '%s'" % line
133: end
134: else
135: debug "Ignoring zone output '%s'" % line
136: end
137: end
138:
139: return hash
140: end