let re = '(?s)pname = "(?P[^"]+)".+version = "(?P[^"]+)".+homepage = "(?P[^"]+)"' let pkgs = glob pkgs/* | each { |it| open --raw $"($it)/default.nix" | parse --regex $re } | each { |it| { name: $it.name.0, homepage: $it.homepage.0, version: $it.version.0 } } | sort-by name # Output $'# jolheiser NUR |Package|Version| |-------|-------| ($pkgs | each { |it| $"|[($it.name)]\(($it.homepage)\)|`($it.version)`|" } | str join "\n" ) '