|
@@ -1,7 +1,7 @@
|
|
|
id: 'idea--thule-alternatives'
|
|
|
content: |
|
|
|
The big alternative I know of is
|
|
|
- [termkit](https://github.com/unconed/TermKit), which is an interesting
|
|
|
+ [TermKit](https://github.com/unconed/TermKit), which is an interesting
|
|
|
experiment: but, to me, it's filled with far too many special cases
|
|
|
and not enough nice primitives. For example, there's a special
|
|
|
way of outputting a list of files (e.g. output from `ls`) but this
|
|
@@ -12,12 +12,16 @@ content: |
|
|
|
|
|
|
Thule builds on top of this by having a standard set of building
|
|
|
blocks, so that you no longer have the special-case "list of files",
|
|
|
- but rather primitive building blocks like `list`s and `file`s.
|
|
|
+ but rather primitive building blocks like `list` and `file`.
|
|
|
Consider the output from `wc`: this also contains file references,
|
|
|
but it additionally contains a table mapping those to values. In
|
|
|
a TermKit-like setting, you'd have to come up with a new schema
|
|
|
(say, `application/json; schema=termkit.wordcount`) that understands
|
|
|
- which parts of the output are files and which aren't.
|
|
|
+ which parts of the output are files and which aren't. This is
|
|
|
+ particularly tricky for `wc`, because you want to have the
|
|
|
+ final `total` row, which does _not_ contain a file. And what if
|
|
|
+ other tools also print table-like structures? Can those be
|
|
|
+ processed with the same tools?
|
|
|
|
|
|
Thule aims to pull those low-level building blocks out, so the
|
|
|
output from `ls` might give you a collection like
|