#identifier

bin+lib jarvis

A framework-agnostic task runner for the command line

3 releases (breaking)

0.3.0 Jul 12, 2020
0.2.0 Jul 12, 2020
0.1.0 Jul 12, 2020

#161 in #identifier

Custom license

18KB
122 lines

JARVIS

jarvis is a command line tool that allows you to define aliases that are local to your current project. The name is borrowed from Tony Stark's Personal AI Assistant, because this tool allows you to talk to your computer via the command line much like Tony Stark talks to JARVIS.

Inspiration

When I saw npm and its feature to define local aliases, so called tasks, in your package.json I got the idea to write this little tool. It very much does the same as npm in terms of the task runner thing. But jarvis also does more...

Features

  • multiple supported config file formats: JSON, TOML
  • integrates with every project
  • simple to setup
  • runs blazingly fast and secure because it's written in rust

Installation

With Cargo package manager:

cargo install jarvis

or by cloning the git repository:

git clone https://github.com/moseschmiedel/jarvis.git
cd jarvis
cargo install .

Usage

Just create a .jarvis.{your-preferred-config-type} in your project's root. In there create a subsection called commands and then specify your commands as key-value-pairs where the key is your wished identifier used to tell jarvis which command to run and the value is a string containing the command that should be called when the identifier is called with jarvis.

You can run jarvis just by executing:

jarvis <command> <args-for-command>

For example with the following configuration files, this:

jarvis hello-world

would print

Hello, world!

in your terminal.

Example configuration files

.jarvis.toml

[commands]
hello-world = "echo \"Hello, world!\"

.jarvis.json

{
	"commands": {
		"hello-world": "echo \"Hello, world!\"
	}
}

Contact

Maintainer: Mose Schmiedel mose.schmiedel@web.de

Please post Issues in the GitHub Repo: https://github.com/moseschmiedel/jarvis.git

Dependencies

~1.3–8.5MB
~69K SLoC