lib/nswtopo/commands/layers.rb
module NSWTopo def layers(state: nil) paths = layer_dirs.grep_v(Pathname.pwd).flat_map do |directory| Array(state).inject(directory, &:/).glob("*") end.sort log_warn "no layers installed" if paths.none? TreeIndenter.new(paths) do |paths| paths.filter_map do |path| case when path.glob("**/*.yml").any? [path.basename.sub_ext(""), path.children.sort] when path.sub_ext("").directory? when path.extname == ".yml" path.basename.sub_ext("") end end end.each do |indents, name| puts [*indents, name].join end end end