nushell/scripts/build-all-maclin.sh

36 lines
707 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'
)
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