# Shake
SHell mAKE

NOTE:
`shake` has been depricated by `bake`.
`@COMPILECMD` has been replaced by `@BAKE`.
The bake repository tracks the most up to date
versions of all implementations.

Bake mirrors:
* [github](https://github.com/emilwilliams/bake)
* [onion](https://bis64wqhh3louusbd45iyj76kmn4rzw5ysawyan5bkxwyzihj67c5lid.onion/emil/bake)

```
Usage: ./shake <input_file>
	./skake runs the value of @COMPILECMD.
	The value of @COMPILECMD is read from <input_file> in is whatever comes after '@COMPILECMD ' until the end of the line.
	Inside the value of @COMPILECMD all mentions of '$@' are replaced with <input_file>.
	The point of this script is ease to compialation of singe source file (toy) programs.
```

### Rationale
I make many example/test files,
many require linking and trying to remember
which libraries are dependencies
and copying the right command from the source file gets old,
fast.

### Example
```C
$ cat test/hw.c
// @COMPILECMD gcc $@ -o hw.out
#include <stdio.h>

void main(){
		puts("Hello world");
}
$ ./shake test/hw.c
$ ./hw.out
Hello world
```