Closed nazmulidris closed 1 year ago
I'd like to work on this. Please assign this issue to me.
@mickm3n That's awesome, all yours. Please let us know if your have any questions as you explore. You can also ask questions on the contributors discord https://discord.gg/RAbjRr3kds
@mrinalwadhwa
I have a question about the desired behavior. In delete all nodes,
it would also delete multiple nodes. Should we align the output of delete all nodes
and delete selected nodes
? With the same rule:
If an operation succeeds then use the ✅ emoji as a prefix for the message. And if it fails, then use the ⚠️ emoji as a prefix for the message.
@mrinalwadhwa Another question: what's the desired behavior when the terminal is not interactive? Deleting the default node or displaying an error message to the user?
I have a question about the desired behavior. In
delete all nodes,
it would also delete multiple nodes. Should we align the output ofdelete all nodes
anddelete selected nodes
? With the same rule:If an operation succeeds then use the ✅ emoji as a prefix for the message. And if it fails, then use the ⚠️ emoji as a prefix for the message.
@mickm3n The scope of ockam node delete --all
is not part of this issue, so it is best not to change that in this PR. We can create a new issue for that after this PR is landed.
Another question: what's the desired behavior when the terminal is not interactive? Deleting the default node or displaying an error message to the user?
Retain the current behavior when the terminal is not interactive.
Current behavior
When a user runs
ockam node delete
without any arguments, currently they are prompted to delete the default node. Here's a screenshot of this.Desired behavior
Instead of deleting the default node, change the behavior of this command so that it becomes interactive with the user. Note that this can only be allowed to happen if:
--no-input
or--quiet
flags have not been passed, and,This what the user flow should look like in interactive mode. 1) Use the tuify crate's
select_from_list()
function to ask the user to select from a list of node names. They should be able to make multiple selections. If there are none, then simply display a message saying that none exist (not an error) and exit.2) Once the user has made their selection(s), display a confirmation prompt letting the user know that that a destructive operation is about to take place with the node names they have selected. Use
select_from_list()
to display this prompt. They should be able to make a single selection.3) If they choose "YES", then delete each selected node, and display a success / failure message for each node that got deleted.
Implementation details
Cargo.toml
file here by adding this liner3bl_tuify = "0.1.16"
to the[dependencies]
section.select_from_list()
in the tuify crate here. Here is an example that is very similar to the steps you might have to take for this issue.ockam node delete
command is implemented.We love helping new contributors! ❤️ If you have questions or need help as you explore, please join us on Discord. If you're looking for other issues to contribute to, please checkout our good first issues.