clipper

module
v0.0.0-...-0657d2b Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 25, 2024 License: Apache-2.0

README

Welcome to Clipper

Clipper works on top of urfave/cli.
It generates the go code cli declaration from manifest. Developper implements interface declared by Clipper.

Getting started

Install Clipper:

go install github.com/najeal/clipper/cmd/clipper@latest

Take a look to the examples

Take a look on the Wiki

The Wiki contains the manifest data types details

Manifest usage preview

Below you can see a manifest Clipper will use as input, then the main.go file the developper will focus on:

name: greet
version: v0.1.0
versionFlag:
  name: version-print
  usage: printing the version
  aliases:
   - p
usage: fight the loneliness!
usageText: greet
action: Greet
commands:
  - name: check
    usage: check flag value
    action: Check
    flags:
      - name: force
        type: bool
        usage: flag checked by commmand
exitCodes:
  missingForce:
    code: 4
    message: force flag is not set

main.go:

func main() {
	app := gen.NewApp(&Service{})
	if err := app.Run(os.Args); err != nil {
		log.Fatal(err)
	}
}

type Service struct{}

func (*Service) Greet(ctx *cli.Context) error {
	fmt.Fprintln(os.Stdout, "greeting !")
	return nil
}

func (*Service) Check(ctx *cli.Context) error {
	if !ctx.Bool("force") {
		return gen.ExitMissingForce
	}
	fmt.Fprintln(os.Stdout, "force flag detected")
	return nil
}

Directories

Path Synopsis
cmd
clipper/gen
Code generated by clipper.
Code generated by clipper.
examples
exitcodes/gen
Code generated by clipper.
Code generated by clipper.
flags/gen
Code generated by clipper.
Code generated by clipper.
full/gen
Code generated by clipper.
Code generated by clipper.
greet/gen
Code generated by clipper.
Code generated by clipper.
subcommands/gen
Code generated by clipper.
Code generated by clipper.
version/gen
Code generated by clipper.
Code generated by clipper.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL