Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/wzr1337/rsi.cli

Command line interface tooling for working with RSI schema files
https://github.com/wzr1337/rsi.cli

node rsi

Last synced: about 1 month ago
JSON representation

Command line interface tooling for working with RSI schema files

Awesome Lists containing this project

README

        

# RSI (RESTful Service Interface) command line interface

[![Build Status](https://travis-ci.com/wzr1337/rsi.cli.svg?branch=master)](https://travis-ci.com/wzr1337/rsi.cli)
[![npm version](https://badge.fury.io/js/rsi.cli.svg)](https://badge.fury.io/js/rsi.cli)

![RSI.cli](https://raw.githubusercontent.com/wzr1337/rsi.cli/master/assets/logo.png)

The swiss army knife for RSI related tasks.

This project supports the RESTful Service Interface as published under [https://www.w3.org/Submission/2016/01/](https://www.w3.org/Submission/2016/01/).

The framework proposes a slightly out-of-date JSON schema for service definitions, so this module uses the service schema published under [https://github.com/wzr1337/rsi.schema](https://github.com/wzr1337/rsi.schema)

## Installation

To install the cli globally run the following command:

```bash
$ npm i -g rsi.cli
```

## Usage

Usage: `rsi [options...]`

**options**

| option | alias | meaning |
| --------------- | ----- |-------------------------------------------------------- |
| --version | -v | Print the version |
| --help | -h | Print this usage guide |

**commands**

| command | what it does |
| ----------------------------- | --------------------------------------------------------------- |
| [service](#service) | operate on service level |
| [bundle](#bundle) | operate on service bundle level |

### service

Usage:

`$ rsi service`

prints you a list of available commands on service level.

**commands**

| command | what it does |
| ----------------------------- | --------------------------------------------------------------- |
| [document](#service.document) | render HTML documentation based on the schema |
| [init](#service.init) | initialize a new repository |
| [release](#service.release) | prepare service for release |
| [render](#service.render) | render UML from schema |
| [markdown](#service.markdown) | render markdown documentation based on the schema |
| [validate](#service.validate) | validate a schema |

### bundle

Usage:

`$ rsi bundle`

prints you a list of available commands on service level.

**commands**

| command | what it does |
| ----------------------------- | --------------------------------------------------------------- |
| [document](#service.document) | render HTML documentation based on the schemas in the bundle |
| [render](#service.render) | render bundle UML |
| [markdown](#service.markdown) | render markdown documentation based for bundle |
| [validate](#service.validate) | validate a schemas in bundle |

#### document

Usage:

`$ rsi document --sourceFolder --output `

or

`$ rsi document -s -o `

Renders a set of HTML documents out of the schema.json file contained in `` into ``.

![RSI.doc.demo](https://raw.githubusercontent.com/wzr1337/rsi.cli/master/assets/rsi.docu.demo.gif)

**options**

| option | alias | meaning |
| --------------- | ----- | ------------------------------------------------------- |
| --sourceFolder | -s | the root folder of the project definition repository |
| --outputFolder | -o | the output folder for the generated documentation |
| --watch | -w | watch the source folder for changes |

#### init

Usage:

`$ rsi service init`

initializes an empty service definition repository with the following sturcture:

```bash
├── CHANGELOG.md
├── README.md
├── package.json
└── src
└── schema.json
```

After you initialized the repository, you can start editing the `src/schema.json` file. Please be aware that it must comply with the
schema definition found under

![RSI.cli](https://raw.githubusercontent.com/wzr1337/rsi.cli/master/assets/rsi.cli.gif)

**options**

init does not support any options

#### release

Usage:

`$ rsi service release`

releases a service definition in the desired way:

**options**

init does not support any options

#### render

Usage:

`$ rsi render --sourceFolder --output `

or

`$ rsi render -s -o `

Renders a class diagram (plantuml) out of the schema.json file contained in `` into ``.

**options**

| option | alias | meaning |
| --------------- | ----- | ------------------------------------------------------- |
| --sourceFolder | -s | the root folder of the project definition repository |
| --outputFolder | -o | the output folder for the generated diagram |
| --watch | -w | watch the source folder for changes |

#### markdown

Usage:

`$ rsi markdown --sourceFolder --output `

or

`$ rsi markdown -s -o `

Renders a markdown document out of the schema.json file contained in `` into ``.

**options**

| option | alias | meaning |
| --------------- | ----- | ------------------------------------------------------- |
| --sourceFolder | -s | the root folder of the project definition repository |
| --outputFolder | -o | the output folder for the generated documentation |
| --watch | -w | watch the source folder for changes |

#### validate

Usage:

`$ rsi validate --sourceFolder `

or

`$ rsi validate -s `

Validates schema.json file contained in ``.

**options**

| option | alias | meaning |
| --------------- | ----- | ------------------------------------------------------- |
| --sourceFolder | -s | the root folder of the project definition repository |
| --watch | -w | watch the source folder for changes |