nushell/scripts/build-all-maclin.sh

37 lines
730 B
Bash
Raw Normal View History

Clean up .sh scripts with shellcheck (#7261) 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)
2022-11-28 03:13:06 +00:00
#!/usr/bin/env bash
REFACTOR: clean the root of the repo (#9231) # Description i've almost always wanted to clean up the root of the repo, so here is my take at it, with some important advice given by @fdncred :relieved: - `README.release.txt` is now gone and directly inline in the `release-pkg` script used in the `release` *workflow* - `build.rs` has been moved to `scripts/` and its path has been changed in [`Cargo.toml`](https://github.com/amtoine/nushell/blob/refactor/clean-root/Cargo.toml#L3) according to the [*Build Scripts* section](https://doc.rust-lang.org/cargo/reference/build-scripts.html#build-scripts) of *The Cargo Book* - i've merged `images/` into `assets/` and fix the only mention to the GIF in the README - i've moved the `docs/README.md` inside the main `README.md` as a new [*Configuration* section](https://github.com/amtoine/nushell/tree/refactor/clean-root#configuration) - the very deprecated `pkg_mgrs/` has been removed - all the `.nu`, `.sh`, `.ps1` and `.cmd` scripts have been moved to `scripts/` ### things i've left as-is - all the other `.md` documents - the configuration files - all the Rust and core stuff - `docker/` - `toolkit.nu` - the `wix/` diretory which appears to be important for `winget` # User-Facing Changes scripts that used to rely on the paths to some of the scripts should now call the scripts inside `scripts/` => i think this for the greater good, it was not pretty nor scalable to have a bunch of scripts in the root of our main `nushell` :scream: *i even think we might want to move these scripts outside the main `nushell` repo* maybe to `nu_scripts` or some other tool :+1: # Tests + Formatting - :green_circle: `toolkit fmt` - :green_circle: `toolkit clippy` - :black_circle: `toolkit test` - :black_circle: `toolkit test stdlib` # After Submitting ``` $nothing ```
2023-05-20 12:57:51 +00:00
Clean up .sh scripts with shellcheck (#7261) 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)
2022-11-28 03:13:06 +00:00
set -euo pipefail
2022-03-04 22:17:33 +00:00
REFACTOR: clean the root of the repo (#9231) # Description i've almost always wanted to clean up the root of the repo, so here is my take at it, with some important advice given by @fdncred :relieved: - `README.release.txt` is now gone and directly inline in the `release-pkg` script used in the `release` *workflow* - `build.rs` has been moved to `scripts/` and its path has been changed in [`Cargo.toml`](https://github.com/amtoine/nushell/blob/refactor/clean-root/Cargo.toml#L3) according to the [*Build Scripts* section](https://doc.rust-lang.org/cargo/reference/build-scripts.html#build-scripts) of *The Cargo Book* - i've merged `images/` into `assets/` and fix the only mention to the GIF in the README - i've moved the `docs/README.md` inside the main `README.md` as a new [*Configuration* section](https://github.com/amtoine/nushell/tree/refactor/clean-root#configuration) - the very deprecated `pkg_mgrs/` has been removed - all the `.nu`, `.sh`, `.ps1` and `.cmd` scripts have been moved to `scripts/` ### things i've left as-is - all the other `.md` documents - the configuration files - all the Rust and core stuff - `docker/` - `toolkit.nu` - the `wix/` diretory which appears to be important for `winget` # User-Facing Changes scripts that used to rely on the paths to some of the scripts should now call the scripts inside `scripts/` => i think this for the greater good, it was not pretty nor scalable to have a bunch of scripts in the root of our main `nushell` :scream: *i even think we might want to move these scripts outside the main `nushell` repo* maybe to `nu_scripts` or some other tool :+1: # Tests + Formatting - :green_circle: `toolkit fmt` - :green_circle: `toolkit clippy` - :black_circle: `toolkit test` - :black_circle: `toolkit test stdlib` # After Submitting ``` $nothing ```
2023-05-20 12:57:51 +00:00
DIR=$(readlink -f $(dirname "${BASH_SOURCE[0]}"))
REPO_ROOT=$(dirname $DIR)
echo "---------------------------------------------------------------"
echo "Building nushell (nu) and all the plugins"
echo "---------------------------------------------------------------"
2022-03-04 22:17:33 +00:00
echo ""
NU_PLUGINS=(
'nu_plugin_example'
'nu_plugin_gstat'
'nu_plugin_inc'
'nu_plugin_query'
2022-08-11 14:40:35 +00:00
'nu_plugin_custom_values'
chore: Add nu_plugin_polars to build and install scripts (#13550) - Add `nu_plugin_polars` to the list of plugins in `build-all-maclin.sh`. - Add `nu_plugin_polars` to the list of plugins in `build-all.nu`. - Add `nu_plugin_polars` to the list of plugins in `install-all.ps1`. - Add `nu_plugin_polars` to the list of plugins in `install-all.sh`. - Add `nu_plugin_polars` to the list of plugins in `uninstall-all.sh`. <!-- if this PR closes one or more issues, you can automatically link the PR with them by using one of the [*linking keywords*](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword), e.g. - this PR should close #xxxx - fixes #xxxx you can also mention related issues, PRs or discussions! --> # Description <!-- Thank you for improving Nushell. Please, check our [contributing guide](../CONTRIBUTING.md) and talk to the core team before making major changes. Description of your pull request goes here. **Provide examples and/or screenshots** if your changes affect the user experience. --> # 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` to check that you're using the standard code style - `cargo test --workspace` to check that all tests pass (on Windows make sure to [enable developer mode](https://learn.microsoft.com/en-us/windows/apps/get-started/developer-mode-features-and-debugging)) - `cargo run -- -c "use toolkit.nu; toolkit test stdlib"` to run the tests for the standard library > **Note** > from `nushell` you can also use the `toolkit` as follows > ```bash > use toolkit.nu # or use an `env_change` hook to activate it automatically > toolkit check pr > ``` --> # 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. -->
2024-08-06 20:23:56 +00:00
'nu_plugin_polars'
)
echo "Building nushell"
REFACTOR: clean the root of the repo (#9231) # Description i've almost always wanted to clean up the root of the repo, so here is my take at it, with some important advice given by @fdncred :relieved: - `README.release.txt` is now gone and directly inline in the `release-pkg` script used in the `release` *workflow* - `build.rs` has been moved to `scripts/` and its path has been changed in [`Cargo.toml`](https://github.com/amtoine/nushell/blob/refactor/clean-root/Cargo.toml#L3) according to the [*Build Scripts* section](https://doc.rust-lang.org/cargo/reference/build-scripts.html#build-scripts) of *The Cargo Book* - i've merged `images/` into `assets/` and fix the only mention to the GIF in the README - i've moved the `docs/README.md` inside the main `README.md` as a new [*Configuration* section](https://github.com/amtoine/nushell/tree/refactor/clean-root#configuration) - the very deprecated `pkg_mgrs/` has been removed - all the `.nu`, `.sh`, `.ps1` and `.cmd` scripts have been moved to `scripts/` ### things i've left as-is - all the other `.md` documents - the configuration files - all the Rust and core stuff - `docker/` - `toolkit.nu` - the `wix/` diretory which appears to be important for `winget` # User-Facing Changes scripts that used to rely on the paths to some of the scripts should now call the scripts inside `scripts/` => i think this for the greater good, it was not pretty nor scalable to have a bunch of scripts in the root of our main `nushell` :scream: *i even think we might want to move these scripts outside the main `nushell` repo* maybe to `nu_scripts` or some other tool :+1: # Tests + Formatting - :green_circle: `toolkit fmt` - :green_circle: `toolkit clippy` - :black_circle: `toolkit test` - :black_circle: `toolkit test stdlib` # After Submitting ``` $nothing ```
2023-05-20 12:57:51 +00:00
(
cd $REPO_ROOT
cargo build --locked
REFACTOR: clean the root of the repo (#9231) # Description i've almost always wanted to clean up the root of the repo, so here is my take at it, with some important advice given by @fdncred :relieved: - `README.release.txt` is now gone and directly inline in the `release-pkg` script used in the `release` *workflow* - `build.rs` has been moved to `scripts/` and its path has been changed in [`Cargo.toml`](https://github.com/amtoine/nushell/blob/refactor/clean-root/Cargo.toml#L3) according to the [*Build Scripts* section](https://doc.rust-lang.org/cargo/reference/build-scripts.html#build-scripts) of *The Cargo Book* - i've merged `images/` into `assets/` and fix the only mention to the GIF in the README - i've moved the `docs/README.md` inside the main `README.md` as a new [*Configuration* section](https://github.com/amtoine/nushell/tree/refactor/clean-root#configuration) - the very deprecated `pkg_mgrs/` has been removed - all the `.nu`, `.sh`, `.ps1` and `.cmd` scripts have been moved to `scripts/` ### things i've left as-is - all the other `.md` documents - the configuration files - all the Rust and core stuff - `docker/` - `toolkit.nu` - the `wix/` diretory which appears to be important for `winget` # User-Facing Changes scripts that used to rely on the paths to some of the scripts should now call the scripts inside `scripts/` => i think this for the greater good, it was not pretty nor scalable to have a bunch of scripts in the root of our main `nushell` :scream: *i even think we might want to move these scripts outside the main `nushell` repo* maybe to `nu_scripts` or some other tool :+1: # Tests + Formatting - :green_circle: `toolkit fmt` - :green_circle: `toolkit clippy` - :black_circle: `toolkit test` - :black_circle: `toolkit test stdlib` # After Submitting ``` $nothing ```
2023-05-20 12:57:51 +00:00
)
for plugin in "${NU_PLUGINS[@]}"
do
echo "Building $plugin..."
echo "-----------------------------"
REFACTOR: clean the root of the repo (#9231) # Description i've almost always wanted to clean up the root of the repo, so here is my take at it, with some important advice given by @fdncred :relieved: - `README.release.txt` is now gone and directly inline in the `release-pkg` script used in the `release` *workflow* - `build.rs` has been moved to `scripts/` and its path has been changed in [`Cargo.toml`](https://github.com/amtoine/nushell/blob/refactor/clean-root/Cargo.toml#L3) according to the [*Build Scripts* section](https://doc.rust-lang.org/cargo/reference/build-scripts.html#build-scripts) of *The Cargo Book* - i've merged `images/` into `assets/` and fix the only mention to the GIF in the README - i've moved the `docs/README.md` inside the main `README.md` as a new [*Configuration* section](https://github.com/amtoine/nushell/tree/refactor/clean-root#configuration) - the very deprecated `pkg_mgrs/` has been removed - all the `.nu`, `.sh`, `.ps1` and `.cmd` scripts have been moved to `scripts/` ### things i've left as-is - all the other `.md` documents - the configuration files - all the Rust and core stuff - `docker/` - `toolkit.nu` - the `wix/` diretory which appears to be important for `winget` # User-Facing Changes scripts that used to rely on the paths to some of the scripts should now call the scripts inside `scripts/` => i think this for the greater good, it was not pretty nor scalable to have a bunch of scripts in the root of our main `nushell` :scream: *i even think we might want to move these scripts outside the main `nushell` repo* maybe to `nu_scripts` or some other tool :+1: # Tests + Formatting - :green_circle: `toolkit fmt` - :green_circle: `toolkit clippy` - :black_circle: `toolkit test` - :black_circle: `toolkit test stdlib` # After Submitting ``` $nothing ```
2023-05-20 12:57:51 +00:00
(
cd "$REPO_ROOT/crates/$plugin"
cargo build
)
done