ion issueshttps://gitlab.redox-os.org/redox-os/ion/-/issues2018-06-12T14:22:04Zhttps://gitlab.redox-os.org/redox-os/ion/-/issues/153Set OLDPWD2018-06-12T14:22:04ZMichael Aaron Murphymmstick@pm.meSet OLDPWD*Created by: skylerberg*
We set PWD, but do don't do anything with OLDPWD at the moment.
*Created by: skylerberg*
We set PWD, but do don't do anything with OLDPWD at the moment.
https://gitlab.redox-os.org/redox-os/ion/-/issues/150Add brace expansion to Ion2018-06-12T14:22:05ZMichael Aaron Murphymmstick@pm.meAdd brace expansion to Ion*Created by: skylerberg*
http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_03_04.html
*Created by: skylerberg*
http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_03_04.html
https://gitlab.redox-os.org/redox-os/ion/-/issues/146We should use PWD variable instead of CWD2018-06-12T14:22:05ZMichael Aaron Murphymmstick@pm.meWe should use PWD variable instead of CWD*Created by: skylerberg*
See discussion in https://github.com/redox-os/ion/pull/116.
*Created by: skylerberg*
See discussion in https://github.com/redox-os/ion/pull/116.
https://gitlab.redox-os.org/redox-os/ion/-/issues/143Quotes after the start of an argument2018-06-12T14:22:05ZJeremy SollerQuotes after the start of an argument`let something="a string"` will set something to `"astring"`, with the quotes included, and no space
`echo something="a string"` will print `something="a string"`, with an additional space (not visible due to github formatting)
Ideally,...`let something="a string"` will set something to `"astring"`, with the quotes included, and no space
`echo something="a string"` will print `something="a string"`, with an additional space (not visible due to github formatting)
Ideally, `sometext"some other text"` would be processed as a single argument `sometestsome other text`
https://gitlab.redox-os.org/redox-os/ion/-/issues/134Make piping work for stderr2018-06-12T14:22:04ZMichael Aaron Murphymmstick@pm.meMake piping work for stderr*Created by: skylerberg*
There is no way to pipe stderr right now.
*Created by: skylerberg*
There is no way to pipe stderr right now.
Michael Aaron Murphymmstick@pm.meMichael Aaron Murphymmstick@pm.mehttps://gitlab.redox-os.org/redox-os/ion/-/issues/135Make redirection work with stderr2018-06-12T14:22:04ZMichael Aaron Murphymmstick@pm.meMake redirection work with stderr*Created by: skylerberg*
There is no way to redirect stderr currently
*Created by: skylerberg*
There is no way to redirect stderr currently
Michael Aaron Murphymmstick@pm.meMichael Aaron Murphymmstick@pm.mehttps://gitlab.redox-os.org/redox-os/ion/-/issues/136Add a type of redirection that appends to a file: `>>`2018-06-12T14:22:04ZMichael Aaron Murphymmstick@pm.meAdd a type of redirection that appends to a file: `>>`*Created by: skylerberg*
Write now redirection always overwrites the file.
*Created by: skylerberg*
Write now redirection always overwrites the file.
https://gitlab.redox-os.org/redox-os/ion/-/issues/131Add io redirection operators2018-06-12T14:22:04ZMichael Aaron Murphymmstick@pm.meAdd io redirection operators*Created by: skylerberg*
*Created by: skylerberg*
https://gitlab.redox-os.org/redox-os/ion/-/issues/132Add heredocs2018-06-12T14:22:04ZMichael Aaron Murphymmstick@pm.meAdd heredocs*Created by: skylerberg*
```
cat <<EOF
some
stuff
EOF
```
*Created by: skylerberg*
```
cat <<EOF
some
stuff
EOF
```
https://gitlab.redox-os.org/redox-os/ion/-/issues/133Add herestrings2018-06-12T14:22:04ZMichael Aaron Murphymmstick@pm.meAdd herestrings*Created by: skylerberg*
```
cat <<<this string is the input
```
*Created by: skylerberg*
```
cat <<<this string is the input
```
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/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/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/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/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/88Add command line options to dirs, pushd, popd2018-06-12T14:22:04ZMichael Aaron Murphymmstick@pm.meAdd command line options to dirs, pushd, popd*Created by: skylerberg*
https://www.gnu.org/software/bash/manual/html_node/Directory-Stack-Builtins.html
*Created by: skylerberg*
https://www.gnu.org/software/bash/manual/html_node/Directory-Stack-Builtins.html
https://gitlab.redox-os.org/redox-os/ion/-/issues/87Add noop command2018-06-12T14:22:05ZMichael Aaron Murphymmstick@pm.meAdd noop command*Created by: skylerberg*
Most shells have a command called `:` that is a noop. We should add this to ion. It can either be called `:` or `noop`; I don't care which, but if anyone does, just say your opinion.
*Created by: skylerberg*
Most shells have a command called `:` that is a noop. We should add this to ion. It can either be called `:` or `noop`; I don't care which, but if anyone does, just say your opinion.