Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/igor-petruk/scriptisto
A language-agnostic "shebang interpreter" that enables you to write scripts in compiled languages.
https://github.com/igor-petruk/scriptisto
linux rust scripting unix
Last synced: 3 months ago
JSON representation
A language-agnostic "shebang interpreter" that enables you to write scripts in compiled languages.
- Host: GitHub
- URL: https://github.com/igor-petruk/scriptisto
- Owner: igor-petruk
- License: apache-2.0
- Created: 2019-10-22T19:39:48.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2024-07-24T20:31:55.000Z (6 months ago)
- Last Synced: 2024-08-09T22:09:36.512Z (6 months ago)
- Topics: linux, rust, scripting, unix
- Language: Rust
- Homepage:
- Size: 268 KB
- Stars: 920
- Watchers: 13
- Forks: 25
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Authors: AUTHORS
Awesome Lists containing this project
- awesome-ccamel - igor-petruk/scriptisto - A language-agnostic "shebang interpreter" that enables you to write scripts in compiled languages. (Rust)
- awesome-rust - scriptisto - agnostic "shebang interpreter" that enables you to write one file scripts in compiled languages. [![Build Status](https://cloud.drone.io/api/badges/igor-petruk/scriptisto/status.svg)](https://cloud.drone.io/igor-petruk/scriptisto) (Development tools / Web Servers)
- awesome-rust-cn - scriptisto
- awesome-rust - scriptisto - A language-agnostic "shebang interpreter" that enables you to write one file scripts in compiled languages. [![Build Status](https://cloud.drone.io/api/badges/igor-petruk/scriptisto/status.svg)](https://cloud.drone.io/igor-petruk/scriptisto) (Development tools / Web Servers)
- jimsghstars - igor-petruk/scriptisto - A language-agnostic "shebang interpreter" that enables you to write scripts in compiled languages. (Rust)
- fucking-awesome-rust - scriptisto - A language-agnostic "shebang interpreter" that enables you to write one file scripts in compiled languages. [![Build Status](https://cloud.drone.io/api/badges/igor-petruk/scriptisto/status.svg)](https://cloud.drone.io/igor-petruk/scriptisto) (Development tools / Web Servers)
- fucking-awesome-rust - scriptisto - A language-agnostic "shebang interpreter" that enables you to write one file scripts in compiled languages. [![Build Status](https://cloud.drone.io/api/badges/igor-petruk/scriptisto/status.svg)](https://cloud.drone.io/igor-petruk/scriptisto) (Development tools / Web Servers)
README
# Scriptisto
[![Latest Version](https://img.shields.io/crates/v/scriptisto.svg)](https://crates.io/crates/scriptisto)
![Build Status](https://github.com/igor-petruk/scriptisto/actions/workflows/on-push.yml/badge.svg)
![Crates.io License](https://img.shields.io/crates/l/scriptisto)
![Libraries.io dependency status for latest release](https://img.shields.io/librariesio/release/cargo/scriptisto)
![GitHub top language](https://img.shields.io/github/languages/top/igor-petruk/scriptisto)![Crates.io](https://img.shields.io/crates/d/scriptisto?label=Cargo.io%20downloads)
![GitHub All Releases](https://img.shields.io/github/downloads/igor-petruk/scriptisto/total?logo=Github&label=Github%20Release%20downloads)[![Packaging status](https://repology.org/badge/vertical-allrepos/scriptisto.svg)](https://repology.org/project/scriptisto/versions)
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 without installing a compiler on a host system are [possible](https://github.com/igor-petruk/scriptisto/wiki/Writing-scripts#builds-in-docker).
Advantages and use-cases are listed in the [Wiki](https://github.com/igor-petruk/scriptisto/wiki#advantages).
## Demo
```c
#!/usr/bin/env scriptisto#include
#include// scriptisto-begin
// script_src: main.c
// build_cmd: clang -O2 main.c `pkg-config --libs --cflags glib-2.0` -o ./script
// scriptisto-endint main(int argc, char *argv[]) {
gchar* user = g_getenv("USER");
printf("Hello, C! Current user: %s\n", user);
return 0;
}
``````shell
$ chmod +x ./script.c
$ ./script.c
Hello, C! Current user: username
```**Note:** some templates such as `rust` take more time to build during the first time. The default behaviour is to supress the build logs, so do not be discouraged that you do not immediately see any output. More info in the [wiki](https://github.com/igor-petruk/scriptisto/wiki/Running-scripts#build-logs).
## Installation
Scriptisto is available as a prebuilt statically-linked standalone binary or distributions packages at [Releases](https://github.com/igor-petruk/scriptisto/releases) or at [Crates.io](https://crates.io/crates/scriptisto).
Please proceed to the [Installation](https://github.com/igor-petruk/scriptisto/wiki/Installation) for instructions.
## Documentation
Proceed to our [Wiki](https://github.com/igor-petruk/scriptisto/wiki).
## Disclaimer
This is not an officially supported Google product.