Toolbench pattern: Difference between revisions
m
s/shell for/shell around/
(introductory sentence) |
m (s/shell for/shell around/) |
||
(7 intermediate revisions by the same user not shown) | |||
Line 1:
The '''toolbench pattern''', '''workbench pattern''', or '''shell pattern''' is a way to expand the reach of a triple script.
If unhappy with a triple script, anyone has the opportunity to change it, but if they are unhappy with the restrictions of triple scripts in general (see [[invariants]]), they are encouraged to create their own
Consider UNIX. If something bothers you about [https://curl.haxx.se/ curl], you have the option of patching it to do what you want. But suppose there were an impedance mismatch that you feel when you use
Or more concretely, consider two tools: a static site generator in contrast to release automation tooling. The job of a static site generator—or any other type of compiler—is fairly straightforward. A static site generator, like [https://jekyllrb.com Jekyll] for example, does a batch read of a bunch of files and then spits out some files in the processed form. This a task that triple scripts are reasonably well-suited to handle. The next step that a person who has just used a static site generator next wants to accomplish, though, is usually to upload those files to a web host. This is not something that triple scripts are well-suited for, and there will never be a way to patch a given static site generator implemented as a triple script to get it to be able to sync the files for the user. Nor will it ever be possible to use the triple script to spin up a web server on localhost allowing the user to preview the generator's output in his or her browser, unlike the way that it's possible with <code>jekyll serve</code>.
On the other hand, it's entirely doable to implement a
Similarly, a typical setup for release automation tooling includes syncing the resulting build artifacts to a server for wide release. A triple script in itself can handle the build, but the final act of uploading will have to be deferred—either to the user, or whatever agent the user assigns to handle the final artifacts that the script produces.
Line 22:
== See also ==
* [[ABCs of triple scripts]]
* [[Selective reification]]
|