mkshell: refactor Bash snippet

I’ve been using https://github.com/Fuuzetsu/shellcheck-nix-attributes on most of
my derivations, and attaching it to one derived from `mkShell` resulted in

```
shellcheck_buildPhase

In /nix/store/8774inwznc87dwhac90winc9b5k6gmkb-nix-shell_shellcheck_buildPhase line 1:
echo "------------------------------------------------------------" >>$out
^-- SC2129 (style): Consider using { cmd1; cmd2; } >> file instead of individual redirects.
                                                                      ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean:
echo "------------------------------------------------------------" >>"$out"

In /nix/store/8774inwznc87dwhac90winc9b5k6gmkb-nix-shell_shellcheck_buildPhase line 2:
echo " WARNING: the existence of this path is not guaranteed." >>$out
                                                                 ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean:
echo " WARNING: the existence of this path is not guaranteed." >>"$out"

In /nix/store/8774inwznc87dwhac90winc9b5k6gmkb-nix-shell_shellcheck_buildPhase line 3:
echo " It is an internal implementation detail for pkgs.mkShell."   >>$out
                                                                      ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean:
echo " It is an internal implementation detail for pkgs.mkShell."   >>"$out"

In /nix/store/8774inwznc87dwhac90winc9b5k6gmkb-nix-shell_shellcheck_buildPhase line 4:
echo "------------------------------------------------------------" >>$out
                                                                      ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean:
echo "------------------------------------------------------------" >>"$out"

In /nix/store/8774inwznc87dwhac90winc9b5k6gmkb-nix-shell_shellcheck_buildPhase line 5:
echo >> $out
        ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean:
echo >> "$out"

In /nix/store/8774inwznc87dwhac90winc9b5k6gmkb-nix-shell_shellcheck_buildPhase line 7:
export >> $out
          ^--^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean:
export >> "$out"

For more information:
  https://www.shellcheck.net/wiki/SC2086 -- Double quote to prevent globbing ...
  https://www.shellcheck.net/wiki/SC2129 -- Consider using { cmd1; cmd2; } >>...
```
——— https://garnix.io/build/qgxbameB

This addresses the shellcheck complaints.
This commit is contained in:
Greg Pfeil 2022-12-05 01:16:12 -07:00 committed by Bjørn Forsman
parent 944a28da8f
commit 58eb3d3806

View File

@ -44,12 +44,13 @@ stdenv.mkDerivation ({
phases = [ "buildPhase" ];
buildPhase = ''
echo "------------------------------------------------------------" >>$out
echo " WARNING: the existence of this path is not guaranteed." >>$out
echo " It is an internal implementation detail for pkgs.mkShell." >>$out
echo "------------------------------------------------------------" >>$out
echo >> $out
# Record all build inputs as runtime dependencies
export >> $out
{ echo "------------------------------------------------------------";
echo " WARNING: the existence of this path is not guaranteed.";
echo " It is an internal implementation detail for pkgs.mkShell.";
echo "------------------------------------------------------------";
echo;
# Record all build inputs as runtime dependencies
export;
} >> "$out"
'';
} // rest)