# Description
From nushell 0.8 philosophy:
https://github.com/nushell/nushell.github.io/blob/main/contributor-book/philosophy_0_80.md#core-categories
> The following categories should be moved to plugins:
Uncommon format support
So this pr is trying to move following commands to plugin:
- [X] from eml
- [x] from ics
- [x] from ini
- [x] from vcf
And we can have a new plugin handles for these formatting, currently
it's implemented here:
https://github.com/WindSoilder/nu_plugin_format
The command usage should be the same to original command.
If it's ok, the plugin can support more formats like
[parquet](https://github.com/fdncred/nu_plugin_from_parquet), or [EDN
format](https://github.com/nushell/nushell/issues/6415), or something
else.
Just create a draft pr to show what's the blueprint looks like, and is
it a good direction to move forward?
# User-Facing Changes
_(List of all changes that impact the user experience here. This helps
us keep track of breaking changes.)_
# Tests + Formatting
Don't forget to add tests that cover your changes.
Make sure you've run and fixed any issues with these commands:
- `cargo fmt --all -- --check` to check standard code formatting (`cargo
fmt --all` applies these changes)
- `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used -A
clippy::needless_collect` to check that you're using the standard code
style
- `cargo test --workspace` to check that all tests pass
# After Submitting
If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
Ran [`shellcheck`](https://github.com/koalaman/shellcheck) on our 3
shell scripts and fixed the warnings. This caught that the scripts were
[broken because of their
shebang](https://www.shellcheck.net/wiki/SC3030):
```
〉./uninstall-all.sh
----------------------------------------------
Uninstall nu and all plugins from cargo/bin...
----------------------------------------------
./uninstall-all.sh: 8: Syntax error: "(" unexpected
```
```
〉shellcheck *.sh
In build-all-maclin.sh line 8:
NU_PLUGINS=(
^-- SC3030 (warning): In POSIX sh, arrays are undefined.
In build-all-maclin.sh line 18:
for plugin in "${NU_PLUGINS[@]}"
^--------------^ SC3054 (warning): In POSIX sh, array references are undefined.
In build-all-maclin.sh line 20:
echo '' && cd crates/$plugin
^---------------^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
^-----^ SC2086 (info): Double quote to prevent globbing and word splitting.
Did you mean:
echo '' && cd crates/"$plugin" || exit
In install-all.sh line 14:
NU_PLUGINS=(
^-- SC3030 (warning): In POSIX sh, arrays are undefined.
In install-all.sh line 22:
for plugin in "${NU_PLUGINS[@]}"
^--------------^ SC3054 (warning): In POSIX sh, array references are undefined.
In install-all.sh line 28:
cd crates/$plugin && cargo install --path . && cd ../../
^-----^ SC2086 (info): Double quote to prevent globbing and word splitting.
Did you mean:
cd crates/"$plugin" && cargo install --path . && cd ../../
In uninstall-all.sh line 8:
NU_PLUGINS=(
^-- SC3030 (warning): In POSIX sh, arrays are undefined.
In uninstall-all.sh line 16:
for plugin in "${NU_PLUGINS[@]}"
^--------------^ SC3054 (warning): In POSIX sh, array references are undefined.
In uninstall-all.sh line 18:
cargo uninstall $plugin
^-----^ SC2086 (info): Double quote to prevent globbing and word splitting.
Did you mean:
cargo uninstall "$plugin"
For more information:
https://www.shellcheck.net/wiki/SC2164 -- Use 'cd ... || exit' or 'cd ... |...
https://www.shellcheck.net/wiki/SC3030 -- In POSIX sh, arrays are undefined.
https://www.shellcheck.net/wiki/SC3054 -- In POSIX sh, array references are...
```
To fix SC2164 I used `set -euo pipefail` as per this Julia Evans suggestion:
![image](https://user-images.githubusercontent.com/26268125/204181003-22283dcb-924d-4c0d-91f6-1ea635dbf0fc.png)