Skip to content

Commit

Permalink
Use --command-color when printing shebang recipe commands (#1911)
Browse files Browse the repository at this point in the history
  • Loading branch information
avi-cenna authored May 15, 2024
1 parent ea141a6 commit d18bdef
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 1 deletion.
5 changes: 5 additions & 0 deletions justfile
Original file line number Diff line number Diff line change
Expand Up @@ -216,6 +216,11 @@ _sh:
hello='Yo'
echo "$hello from a shell script!"

_nu:
#!/usr/bin/env nu
let hellos = ["Greetings", "Yo", "Howdy"]
$hellos | each {|el| print $"($el) from a nushell script!" }

_ruby:
#!/usr/bin/env ruby
puts "Hello from ruby!"
Expand Down
9 changes: 8 additions & 1 deletion src/recipe.rs
Original file line number Diff line number Diff line change
Expand Up @@ -310,7 +310,14 @@ impl<'src, D> Recipe<'src, D> {

if config.verbosity.loud() && (config.dry_run || self.quiet) {
for line in &evaluated_lines {
eprintln!("{line}");
eprintln!(
"{}",
config
.color
.command(config.command_color)
.stderr()
.paint(line)
);
}
}

Expand Down
31 changes: 31 additions & 0 deletions tests/shebang.rs
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,37 @@ fn simple() {
.run();
}

#[test]
fn echo() {
Test::new()
.justfile(
"
@baz:
#!/bin/sh
echo fizz
",
)
.stdout("fizz\n")
.stderr("#!/bin/sh\necho fizz\n")
.run();
}

#[test]
fn echo_with_command_color() {
Test::new()
.justfile(
"
@baz:
#!/bin/sh
echo fizz
",
)
.args(["--color", "always", "--command-color", "purple"])
.stdout("fizz\n")
.stderr("\u{1b}[1;35m#!/bin/sh\u{1b}[0m\n\u{1b}[1;35mecho fizz\u{1b}[0m\n")
.run();
}

// This test exists to make sure that shebang recipes run correctly. Although
// this script is still executed by a shell its behavior depends on the value of
// a variable and continuing even though a command fails, whereas in plain
Expand Down

0 comments on commit d18bdef

Please sign in to comment.