ion issueshttps://gitlab.redox-os.org/redox-os/ion/-/issues2018-06-12T14:22:04Zhttps://gitlab.redox-os.org/redox-os/ion/-/issues/125Special variable `?` no longer expands2018-06-12T14:22:04ZMichael Aaron Murphymmstick@pm.meSpecial variable `?` no longer expands*Created by: skylerberg*
I didn't realize this until after merging https://github.com/redox-os/ion/pull/122, but since it only checks for alphanumeric and underscore it will not expand when you try `$?`.
*Created by: skylerberg*
I didn't realize this until after merging https://github.com/redox-os/ion/pull/122, but since it only checks for alphanumeric and underscore it will not expand when you try `$?`.
https://gitlab.redox-os.org/redox-os/ion/-/issues/124Variable expansion should always try to expand as long a string as possible2018-06-12T14:22:04ZMichael Aaron Murphymmstick@pm.meVariable expansion should always try to expand as long a string as possible*Created by: skylerberg*
There is a bug right now when using two variables in which one is a prefix of the other. To illustrate
```
> let var = abc
> let variable = def
> echo $var$variable
abcabciable
```
When `$var` is expanded it e...*Created by: skylerberg*
There is a bug right now when using two variables in which one is a prefix of the other. To illustrate
```
> let var = abc
> let variable = def
> echo $var$variable
abcabciable
```
When `$var` is expanded it expands the first part of `$variable` as well.
https://gitlab.redox-os.org/redox-os/ion/-/issues/123Make variable expansion respect quoting2018-06-12T14:22:04ZMichael Aaron Murphymmstick@pm.meMake variable expansion respect quoting*Created by: skylerberg*
Variables should be expanded during weak quoting (with double quotes) and they should not during hard quoting (with single quotes).
*Created by: skylerberg*
Variables should be expanded during weak quoting (with double quotes) and they should not during hard quoting (with single quotes).
https://gitlab.redox-os.org/redox-os/ion/-/issues/121Add PROMPT variable that sets the prompt2018-06-12T14:22:04ZMichael Aaron Murphymmstick@pm.meAdd PROMPT variable that sets the prompt*Created by: skylerberg*
Since @mmstick added the use of variables to configure the shell, this should be pretty straightforward now.
*Created by: skylerberg*
Since @mmstick added the use of variables to configure the shell, this should be pretty straightforward now.
https://gitlab.redox-os.org/redox-os/ion/-/issues/119Redo flow control and assocaited functions as part of the grammar2018-06-12T14:22:05ZMichael Aaron Murphymmstick@pm.meRedo flow control and assocaited functions as part of the grammar*Created by: skylerberg*
Instead of implementing what is essentially parsing logic as part of the flow_control class, this should be moved into the grammar. The main problem I anticipate with this is that we need a way to detect a parti...*Created by: skylerberg*
Instead of implementing what is essentially parsing logic as part of the flow_control class, this should be moved into the grammar. The main problem I anticipate with this is that we need a way to detect a partially formed statement such as in incomplete for loop so that the user can keep working on it while using the shell interactively.
https://gitlab.redox-os.org/redox-os/ion/-/issues/118Variable expansion syntax proposition2018-06-12T14:22:05ZMichael Aaron Murphymmstick@pm.meVariable expansion syntax proposition*Created by: nounoursheureux*
While the current syntax `$var` is great thanks to its simplicity, I think it can be inconvenient. Here is an example in the form of an imaginary PROMPT variable:
```
let PROMPT = "$USERNAME@$CWD:$SUFFIX"
...*Created by: nounoursheureux*
While the current syntax `$var` is great thanks to its simplicity, I think it can be inconvenient. Here is an example in the form of an imaginary PROMPT variable:
```
let PROMPT = "$USERNAME@$CWD:$SUFFIX"
```
The problem here in my opinion is that is can be unclear when a variable's name ends. In this particular case it is easy because I used special characters, but if I wanted to use `a` instead of `@` it wouldn't work (the parser would use `$USERNAMEa` as the variable name). So i suggest that we use the following syntax instead: `${var}` . In my opinion it is as readable as `$var` while avoiding ambiguity. And so our PROMPT variable would be:
```
let PROMPT = "${USERNAME}@${CWD}:${SUFFIX}"
```
What do you think ?
https://gitlab.redox-os.org/redox-os/ion/-/issues/115Add a manual2018-06-12T14:22:05ZMichael Aaron Murphymmstick@pm.meAdd a manual*Created by: skylerberg*
We should add a manual. This could be manpages like http://linux.die.net/man/1/zsh. It could also be something like https://www.gnu.org/software/bash/manual/bashref.html.
*Created by: skylerberg*
We should add a manual. This could be manpages like http://linux.die.net/man/1/zsh. It could also be something like https://www.gnu.org/software/bash/manual/bashref.html.
https://gitlab.redox-os.org/redox-os/ion/-/issues/114Add rustdoc documentation for our API2018-06-12T14:22:05ZMichael Aaron Murphymmstick@pm.meAdd rustdoc documentation for our API*Created by: skylerberg*
We should document our functions, particularly public ones and complex ones.
*Created by: skylerberg*
We should document our functions, particularly public ones and complex ones.
https://gitlab.redox-os.org/redox-os/ion/-/issues/113Add piping for builtin commands2018-06-12T14:22:05ZMichael Aaron Murphymmstick@pm.meAdd piping for builtin commands*Created by: skylerberg*
They should all ignore stdin for now, but they should have an stdout and stderr that can be piped into processes.
*Created by: skylerberg*
They should all ignore stdin for now, but they should have an stdout and stderr that can be piped into processes.
https://gitlab.redox-os.org/redox-os/ion/-/issues/112Add piping from process to process2018-06-12T14:22:05ZMichael Aaron Murphymmstick@pm.meAdd piping from process to process*Created by: skylerberg*
I will make a second issue for piping between builtin commands.
*Created by: skylerberg*
I will make a second issue for piping between builtin commands.
https://gitlab.redox-os.org/redox-os/ion/-/issues/111Proper documentation2018-06-12T14:22:05ZMichael Aaron Murphymmstick@pm.meProper documentation*Created by: ticki*
Every single function should be documented, see redox-os/redox#525
*Created by: ticki*
Every single function should be documented, see redox-os/redox#525
https://gitlab.redox-os.org/redox-os/ion/-/issues/109Add history expansion2018-06-12T14:22:04ZMichael Aaron Murphymmstick@pm.meAdd history expansion*Created by: skylerberg*
For examples of history expansion in bash: http://www.thegeekstuff.com/2011/08/bash-history-expansion/.
*Created by: skylerberg*
For examples of history expansion in bash: http://www.thegeekstuff.com/2011/08/bash-history-expansion/.
https://gitlab.redox-os.org/redox-os/ion/-/issues/108Add -c argument2018-06-12T14:22:04ZJeremy SollerAdd -c argumentThis is done in the redox branch but would need to be merged
https://github.com/redox-os/ion/blob/redox/src/main.rs#L372
This is done in the redox branch but would need to be merged
https://github.com/redox-os/ion/blob/redox/src/main.rs#L372
https://gitlab.redox-os.org/redox-os/ion/-/issues/104A List of Variables Used By Ion Shell2018-06-12T14:22:04ZMichael Aaron Murphymmstick@pm.meA List of Variables Used By Ion Shell### Implemented
- **?**: Displays the last command's exit code
- **DIRECTORY_STACK_SIZE**: Defines the maximum size of the internal directory stack buffer
- **HISTORY_SIZE**: Defines the maximum size of the internal history buffer
-...### Implemented
- **?**: Displays the last command's exit code
- **DIRECTORY_STACK_SIZE**: Defines the maximum size of the internal directory stack buffer
- **HISTORY_SIZE**: Defines the maximum size of the internal history buffer
- **HISTORY_FILE**: If set to 1, enables writing a history log to disk
- **HISTORY_FILE_SIZE**: Defines the maximum amount of commands to retain in the log
- **HOME**: Displays the current user's home directory
- **OLDPWD**: Displays the previous working directory
- **PWD**: Displays the current working directory
- **PROMPT**: Contains the Shell Prompt
- **USER**: Displays the current user
### Not Implemented
???
https://gitlab.redox-os.org/redox-os/ion/-/issues/99Curly braces or if...end blocks ?2018-06-12T14:22:04ZMichael Aaron Murphymmstick@pm.meCurly braces or if...end blocks ?*Created by: nounoursheureux*
The current syntax use if...end blocks, but the proposed syntax uses curly braces. I think we should decide now which syntax we want to use. In my opinion the curly braces would have a more Rust-like feel, ...*Created by: nounoursheureux*
The current syntax use if...end blocks, but the proposed syntax uses curly braces. I think we should decide now which syntax we want to use. In my opinion the curly braces would have a more Rust-like feel, and the if...end blocks feel more like other shells (Bash for example). So, what do you think ?
https://gitlab.redox-os.org/redox-os/ion/-/issues/98Exit with the last command's exit status2018-06-12T14:22:04ZJeremy SollerExit with the last command's exit statusWhen running a script or running with -c, ion should exit with the last commands exit status.
When running a script or running with -c, ion should exit with the last commands exit status.
https://gitlab.redox-os.org/redox-os/ion/-/issues/94Add builtin document/ planned implemented builtin .2018-06-12T14:22:04ZMichael Aaron Murphymmstick@pm.meAdd builtin document/ planned implemented builtin .*Created by: lygstate*
*Created by: lygstate*
https://gitlab.redox-os.org/redox-os/ion/-/issues/93How to calling external ion shell scripts?2018-06-12T14:22:04ZMichael Aaron Murphymmstick@pm.meHow to calling external ion shell scripts?*Created by: lygstate*
How to calling a function in a external scripts?
*Created by: lygstate*
How to calling a function in a external scripts?
https://gitlab.redox-os.org/redox-os/ion/-/issues/92What's the default extension of ion? Or just have no extension?2018-06-12T14:22:04ZMichael Aaron Murphymmstick@pm.meWhat's the default extension of ion? Or just have no extension?*Created by: lygstate*
*Created by: lygstate*
https://gitlab.redox-os.org/redox-os/ion/-/issues/91Getting ion works under windows2018-06-12T14:22:04ZMichael Aaron Murphymmstick@pm.meGetting ion works under windows*Created by: lygstate*
*Created by: lygstate*