Comments (3)
- issue 1: AtLeast not found in command `root.
var root = &cli.Command{
Name: "fi",
Desc: "File input demo",
Text: "File input demo with mandatory options",
Argv: func() interface{} { return new(rootT) },
Fn: fi,
} - issue 2: Change
Argv: func() interface{} { return new(rootT) }
toArgv: func() interface{} { argv := new(rootT); argv.Self = argv; return argv },
from cli.
package main
import (
"fmt"
"github.com/mkideal/cli"
clix "github.com/mkideal/cli/ext"
"os"
)
type rootT struct {
cli.Helper
Self *rootT `cli:"c,config"usage:"config file" json:"-" parser:"jsonfile" dft:"fi.json"`
Name string `cli:"*n,name"usage:"Name (mandatory)"`
Tag string `cli:"*t,tag"usage:"Tag used for record saving (mandatory)"`
ID string `cli:"id"usage:"ID to use"`
Fi *clix.Reader `cli:"i,input"usage:"The source (or stdin if unspecified)"`
}
var root = &cli.Command{
NumOption: cli.AtLeast(1),
Name: "fi",
Desc: "File input demo",
Text: "File input demo with mandatory options",
Argv: func() interface{} { argv := new(rootT); argv.Self = argv; return argv },
Fn: fi,
}
func main() {
cli.SetUsageStyle(cli.ManualStyle) // up-down, for left-right, use NormalStyle
//NOTE: You can set any writer implements io.Writer
// default writer is os.Stdout
if err := cli.Root(root).Run(os.Args[1:]); err != nil {
fmt.Fprintln(os.Stderr, err)
}
fmt.Println("")
}
func fi(ctx *cli.Context) error {
ctx.JSON(ctx.RootArgv())
ctx.JSON(ctx.Argv())
fmt.Println()
return nil
}
from cli.
Oh, I'm so sorry to trouble you with my own silly mistake. You saved my day. Thanks A LOT!
from cli.
Related Issues (20)
- Reader read from url HOT 2
- How to add default flag for jsonfile? HOT 4
- Add support for url.URL argument type HOT 7
- Simplify access to nested args HOT 3
- Publish new release please HOT 4
- Self config allows to go with the executable file HOT 5
- Excessive spacing with defaults when in NormalStyle HOT 19
- Terminate with non-zero exit code in case of an error HOT 2
- Something went wrong with dep HOT 6
- This project is now dormant, but there is a new forked repo HOT 8
- Catching up HOT 1
- Need separator to arrange parameters in groups HOT 4
- Need to loosen the tight control of the config name HOT 14
- When decoding Time with empty string, toggle IsSet HOT 1
- dft not accepting '$' value HOT 2
- Printing self help HOT 5
- Command alias HOT 4
- IsSet always returns false HOT 3
- Default value incorrect when printing usage
- Default arguments from embedded struct not realised HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cli.