Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

The obvious CLI specification format. You define the spec, Oclis generates the code! Support for PureScript so far. PRs for more languages appreciated!

License

NotificationsYou must be signed in to change notification settings

Airsequel/Oclis

Repository files navigation

CLI (Command Line Interface) app builderbased on a simple, obvious specification file.

Motivation

Building a CLI application is a repetitive task.The same code is written over and over again.But fear not, Oclis is here to help you out!

Usage

  1. cargo install oclis
  2. oclis init - Creates anoclis.ncl specifcation file.
  3. Adapt the specification file to your liking.
    (Check out theexamples directory for inspiration.)
  4. Runoclis build to generate the CLI parsing code
    (It automatically detects the main repo language,but only PureScript is supported at the moment.)
  5. Add missing dependencies to your project.
    (E.g. for PureScript check out thespago.yaml file.)
  6. Define the handler functions for your commands.
    (Check out themain function of Transity for an example.)
  7. Commit the generated code to the repository.

How It Works

Processing Pipeline of the Generated CLI App

Processing Pipeline

Unsupported CLI designs

Some features of other CLI frameworks are deliberately not supported:

  • Specifying a flag several times. (e.g.tar -v -v -v)This is error prone as it's easy to accidentally add it several times.Use a numerical verbosity flag instead (e.g.tar -v=3)or define your own counting system (e.g.tar -v=xxx)
  • Specifying flags/options after the arguments.(e.g.pandoc in.md --output=out.pdf)Disallowing this helps to prevent errors from accidentally providingan argument which is understood as a flag/option.Suggested alternatives:
    • Sub-command:pandoc convert in.md out.pdf
    • Option first:pandoc --output=out.pdf in.md
    • Extra option:pandoc --input=in.md --output=out.pdf

Related

Other CLI Builders

  • CLI Definition Language - DSL for defining command line interfacesof C++ programs.
  • Decli - Declarative CLI tool builder.
  • docopt - Command-line interface description language.
  • make-cli - Declarative CLI framework for Node.js.

Manual CLI Frameworks

Check out the repoawesome-cli-frameworksfor a full overview.

Specifications

Generate GUIs From CLI

  • Claui - A GUI generator forclap usingegui.
  • Gooey - Turn CLI programs into a full GUI application.
  • Klask - Automatically create GUI applications fromclap apps.

Generate GUIs From Simple Code

  • Sparkle - Infer user interfaces from type signatures.
  • Streamlit - Turns data scripts into shareable web apps.

About

The obvious CLI specification format. You define the spec, Oclis generates the code! Support for PureScript so far. PRs for more languages appreciated!

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

[8]ページ先頭

©2009-2025 Movatter.jp