phyver / GameShell

a game to learn (or teach) how to use standard commands in a Unix shell
GNU General Public License v3.0
2.12k stars 135 forks source link

Add a `gsh sofar` command #142

Closed leroivi closed 4 months ago

leroivi commented 4 months ago

I think it would be great to have a summary of all the useful commands presented in the previous and current mission.
I've seen that most of the time the goal command shows again the useful commands that are essential for completing the mission, but sometimes a beginner could use some basic commands (such as cd, ls etc...) to understand the context and struggle to remind them as they're not reminded in the goal command.
That's why I think of a gsh sofar command (not sure of the name) that print the summary of all the useful commands seen so far.

phyver commented 4 months ago

That's not easy to implement as Gameshell tries hard to be independent of the missions themselves. With the current architecture, it is not possible to know which commands have already been dealt with.

One thing that might be possible is a gsh basics command that shows a "neutral" list of basic commands with a very short description (cd, ls, cp, rm, mv and mkdir ?) together with a reminder that you can actually get the goal of any mission, past / present / future. (That feature is only documented in the gsh HELP command. I should put it in the gsh help command as well.)

leroivi commented 4 months ago

As the mission folder structure is already constrained, I imagined we could separate the useful commands from the goal in a dedicated file (that the goal command could also read) and the gsh sofar command could iterate through every mission folder preceding the current one to print them. I don't know how to find the order of the missions, but as you're doing it for the index command, it could be done.

I didn't notice that the player can get the goal of any mission ! I thought he would have to goto the mission and then goal, abandoning the current one. I think that this feature combined with index command is good enough to retrieve the forgotten commands. It answers my worries.
So, yeah, maybe that feature could be more documented and so the sofar command is not needed anymore.

Thank you for your answer