Feature suggestion: TamlTool - A command-line tool for interacting with TAML files
kyrvlasiuk opened this issue · comments
It would let users browse and make changes to TAML file from command-line without a need to open a full file for edit.
- It is useful when you need to set particular key and do not need to review the file.
- Useful for detached scenario where, for example, CI/CD pipeline would make changes to a file.
- This is useful for assistive purposes as it helps to focus on one thing at a time and helps to navigate file of any size without a need for file editor.
- Useful for tutorials as changes to a file can be broken down to distinct deterministic steps.
Comment: I know it would help me focus, as I sometimes change the wrong values, but I would like input on whether it would be helpful to somebody else.
I suggest interactive and detached mode.
Take this file.taml
for example
name Example TAML file
version V1.1
commands
add do command
init do other command
start do more
comment
this is a first comment
this is a second comment
Interactive:
to open file in interactive
TamlTool ./file.taml -i
to list all top level keys
file.taml>ls
to list entire file
file.taml>ls -r
to change name
file.taml>post /name This is new name
to get a value
file.taml>get /name
to add value to array
file.taml>post /comment This is a third comment
to change value in array
file.taml>post /comment/1 A first comment
to add value in associative array
file.taml>post /commands/new This is new command
to change value in associative array
file.taml>post /commands/add This is old command
to change context to key
file.taml>cd commands
can be executed in context of document or current context
file.taml/commands> get ./add
file.taml/commands> get /commands/add
In Detached mode command are executed in context of a document.
TamlTool ./file.taml -c post /comment This is detached comment
This would result to a file
name This is new name
version V1.1
commands
add This is old command
init do other command
start do more
new This is new command
comment
A first comment
this is a second comment
This is a third comment
This is detached comment
Comment: spaces represent tab as github issue editor does not allow tabbing.
This tool can be implemented as dotnet global tool.
This is just a draft for an idea, but I would like to work on on it, if someone is interested.
This is a pretty neat idea! Happy to assign it to you.
That is a really neat idea. It would very valuable for any project to have a configuration-cli
out of the box with Taml that simply checks that the configuration is valid especially when this is enriched with schema definitions.
I would go so far to call the NuGet Package TamlTool
and the assembly taml
.
I also suggest that when you run taml
command without any arguments in a directory that has only one taml file in it to just load that one taml file in interactive mode. I have the assumption that in most cases there is only one taml configuration in a directory but if there are more files than it let's you select which taml to open.
Also down the line I can envision that something like taml new http://path/to/MyFancy.schema.taml
could be possible to create a kind of guided wizard to create an initial configuration of an application through special capabilities of schema.
Basically a tool that everything that uses Taml to configure stuff to have out of the box. That would be a really big feature to choose Taml.