It is tool to enable writing one file scripts in languages that require compilation, dependencies fetching or preprocessing.
It works as a "shebang" for those scripts, extracting build instructions from comments. If a script is changed, scriptisto rebuilds it and caches the result. If a script was already built, scriptisto immediately delegates to a binary with only <1 ms overhead.
Builds in Docker are available.
Advantages and use-cases are listed in the Wiki.
#!/usr/bin/env scriptisto
#include <stdio.h>
#include <glib.h>
// scriptisto-begin
// script_src: main.c
// build_cmd: clang -O2 main.c `pkg-config --libs --cflags glib-2.0` -o ./script
// scriptisto-end
int main(int argc, char *argv[]) {
gchar* user = g_getenv("USER");
printf("Hello, C! Current user: %s\n", user);
return 0;
}
$ chmod +x ./script.c
$ ./script.c
Hello, C! Current user: username
Scriptisto is available as a prebuilt statically-linked standalone binary or distrubutions packages at Releases or at Crates.io.
Please proceed to the Installation for instructions.
Proceed to our Wiki.
This is not an officially supported Google product.