Comments (6)
So easy to read json file:
func (p JSONFileParser) Parse(s string) error {
f, err := os.Open(s)
if err != nil {
return err
}
return json.NewDecoder(f).Decode(p.ptr)
}
from cli.
Hmm..., agree, it's easy to read json files. I'm just thinking, from the completeness point of view, CLI should expose how to update the CLI structure from json files, giving it a standard so that everyone can following, not everyone doing it in their own ways.
BTW, you demo code only deals with json file, but you've left out how to update the CLI structure from json file right?
from cli.
I add functions: ReadJSON and ReadJSONFromFile
func ReadJSON(r io.Reader, argv interface{}) error {
return json.NewDecoder(r).Decode(argv)
}
func ReadJSONFromFile(filename string, argv interface{}) error {
file, err := os.Open(filename)
if err == nil {
err = ReadJSON(file, argv)
}
return err
}
Both two can update argv
from json data.
See commit 617d581
from cli.
Thank you VERY MUCH!
from cli.
It doesn't really matter but it is better to close the file in ReadJSONFromFile()
.
Ref: https://github.com/go-jsonfile/jsonfile/blob/master/jsonfile.go
Note the line,
// Credits: Mkideal Wang https://github.com/mkideal/cli/issues/22
from cli.
Thanks!
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.