Sake: like make, but with shell scripts(tonyfischetti.github.io)
tonyfischetti.github.io
Sake: like make, but with shell scripts
http://tonyfischetti.github.io/sake/
6 comments
The tool looks interesting, but I don't understand what the submission title is supposed to mean. The novel part of this relative to make is not the use of shell scripts (the actual building of things and dependency tracking appears to be identical to make), but rather the graph visualization and ability to actually document targets.
bad title; shellscripts have nothing to do with it. the project's tagline would be better:
Sake: A self-documenting build automation tool
Sake: A self-documenting build automation tool
For something that _is_ like Make, but with shell scripts see shmake from Steve Donovan http://steved-imaginaryreal.blogspot.co.uk/2015/05/shmake-sh...
apenwarr's implementation of djb redo[1] contains a minimal, shell implementation of redo in its `minimal/` subdirectory.
It seems like the downside to using redo would be that there are .do files sitting throughout the source tree. It'd be nice if there was a way to consolidate several .do files into a single Redofile, similar to a Makefile or Sakefile.
Like the non-minimal redo, sake is also implemented in Python. I wonder how they compare, performance-wise.
[1] https://github.com/apenwarr/redo
It seems like the downside to using redo would be that there are .do files sitting throughout the source tree. It'd be nice if there was a way to consolidate several .do files into a single Redofile, similar to a Makefile or Sakefile.
Like the non-minimal redo, sake is also implemented in Python. I wonder how they compare, performance-wise.
[1] https://github.com/apenwarr/redo
A single Redofile kind of doesn't work with the hole concept of redo, sadly. However, most .do files will sit in some kind of out/ directory anyway, so I don't think that'd be a real issue in practise.
Speaking of performance, apenwarrs redo implementation suffers mostly from excessive forking of the python runtime. Sake doesn't need to do this, but it needs to do more work at the start, so my guess would be that Sake is faster for any bigger project. That is assuming sequential builds though, because it seems like Sake doesn't support parallel building?
EDIT: I believe you can create a fake "Redofile" even in apenwarr redo by just naming it "default.do" and switching on $1 to see what you are supposed to build. I even used this myself[0], but it's a hack, and should be replaced by something better.
[0] https://github.com/Tharre/redo/blob/master/default.do
Speaking of performance, apenwarrs redo implementation suffers mostly from excessive forking of the python runtime. Sake doesn't need to do this, but it needs to do more work at the start, so my guess would be that Sake is faster for any bigger project. That is assuming sequential builds though, because it seems like Sake doesn't support parallel building?
EDIT: I believe you can create a fake "Redofile" even in apenwarr redo by just naming it "default.do" and switching on $1 to see what you are supposed to build. I even used this myself[0], but it's a hack, and should be replaced by something better.
[0] https://github.com/Tharre/redo/blob/master/default.do
Then again, some make-based projects work very hard in order to have tidy little .mk include files in just about every directory in the source tree. :)
The original title is more interesting too.
I wonder why the submitter decided to go off piste?
I wonder why the submitter decided to go off piste?
Last month, the similar 'memoize' came up:
https://github.com/kgaughan/memoize.py (https://news.ycombinator.com/item?id=9356433)
Also another entrant in the genre is 'Drake':
http://blog.factual.com/introducing-drake-a-kind-of-make-for... (https://news.ycombinator.com/item?id=5110921)
https://github.com/kgaughan/memoize.py (https://news.ycombinator.com/item?id=9356433)
Also another entrant in the genre is 'Drake':
http://blog.factual.com/introducing-drake-a-kind-of-make-for... (https://news.ycombinator.com/item?id=5110921)
body {
color: #777;
This is on a page with a white background. You might want to reconsider this for the benefit of vision impaired readers (or even those trying to read with some glare on the screen, as I am now).
This is on a page with a white background. You might want to reconsider this for the benefit of vision impaired readers (or even those trying to read with some glare on the screen, as I am now).
In their defense, it's the default when creating a GitHub pages site with the 'minimal' theme: https://github.com/orderedlist/minimal/blob/master/styleshee...
Not only that, but no zooming? They obviously don't want anyone to read it on a smallish screen. Instant close-tab.
So... just like make? I didn't bother reading what this is about, because the grey text on white background is unreadable.
Less talking, more action. https://github.com/tonyfischetti/sake/pull/59
The example reads a bit like "make for people who don't understand the syntax of make". I would stick with make.
Was interested to see what this is about, but the lack of contrast between letters and background put me off to make the effort to even try and get the point. Please, people who make an effort: Please do not do so in vain.
Not really a solution, but using NoScript helps in such situations. I was using NoScript and only after seeing your comment (and temporarily whitelisting the site) did I notice the issue.