Scriptisto
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.
Demo
#!/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
Installation
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.
Documentation
Proceed to our Wiki.
Disclaimer
This is not an officially supported Google product.