0k / shyaml

YAML for command line
BSD 2-Clause "Simplified" License
767 stars 57 forks source link

File as parameter (Issue #11) #59

Open gio8tisu opened 4 years ago

gio8tisu commented 4 years ago

As requested in #11 and #13, added a new CLI option (--file) to read from a file instead of just standard input. Personally, I would prefer it as a positional argument but i think it will conflict with the current interface.

In order to do it in a more "elegant" way, I have refactored the argument parsing to use python standard library's argparse module. Then, added the new option which defaults to read from stdin and accepts a filename as value (and "-" as another way to read from stdin). Error handling for non-existing input file should probably be added. Migrating to argparse causes an error for previously valid argument ordering. E.g., the following call is no longer valid:

cat <FILE> | shyaml get-value -y <KEY>

the valid call would be (notice the y-flag position):

cat test.yaml | shyaml -y get-valuekey