Skip to content

Commit 87c862c

Browse files
committed
Capture stdout/err from Packwerk CLI
Also use the default Plain style.
1 parent 30148a2 commit 87c862c

File tree

2 files changed

+4
-2
lines changed

2 files changed

+4
-2
lines changed

danger-packwerk.gemspec

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,4 +35,5 @@ Gem::Specification.new do |spec|
3535
spec.add_dependency 'packwerk'
3636
spec.add_dependency 'parse_packwerk'
3737
spec.add_dependency 'sorbet-runtime'
38+
spec.add_dependency 'stringio'
3839
end

lib/danger-packwerk/packwerk_wrapper.rb

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# typed: strict
22

3+
require 'stringio'
4+
35
module DangerPackwerk
46
# This class wraps packwerk to give us precisely what we want, which is the `Packwerk::ReferenceOffense` from a set of files.
57
# Note that statically packwerk returns `Packwerk::Offense` from running `bin/packwerk check`. The two types of `Packwerk::Offense` are
@@ -19,8 +21,7 @@ def self.get_offenses_for_files(files)
1921
formatter = OffensesAggregatorFormatter.new
2022
# This is mostly copied from exe/packwerk within the packwerk gem, but we use our own formatters
2123
ENV['RAILS_ENV'] = 'test'
22-
style = Packwerk::OutputStyles::Coloured.new
23-
cli = Packwerk::Cli.new(style: style, offenses_formatter: formatter)
24+
cli = Packwerk::Cli.new(offenses_formatter: formatter, out: StringIO.new)
2425
cli.execute_command(['check', *files])
2526
reference_offenses = formatter.aggregated_offenses.compact.select { |offense| offense.is_a?(Packwerk::ReferenceOffense) }
2627
T.cast(reference_offenses, T::Array[Packwerk::ReferenceOffense])

0 commit comments

Comments
 (0)