Skip to content

Commit be7cc6f

Browse files
author
Alex Evanczuk
authored
Add linting commands to bin/packs (#43)
* Add some commands to bin/packs * Bump version * fix name of file * rubocop
1 parent 3d9ede4 commit be7cc6f

File tree

6 files changed

+182
-2
lines changed

6 files changed

+182
-2
lines changed

Gemfile.lock

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
PATH
22
remote: .
33
specs:
4-
use_packwerk (0.57.17)
4+
use_packwerk (0.58.0)
55
code_ownership
66
colorize
77
package_protections
88
parse_packwerk
9+
rubocop-packs
910
sorbet-runtime
1011
thor
1112
tty-prompt

lib/use_packwerk/private/interactive_cli.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
require 'use_packwerk/private/interactive_cli/use_cases/rename'
1717
require 'use_packwerk/private/interactive_cli/use_cases/update_deprecations'
1818
require 'use_packwerk/private/interactive_cli/use_cases/validate'
19+
require 'use_packwerk/private/interactive_cli/use_cases/regenerate_rubocop_todo'
20+
require 'use_packwerk/private/interactive_cli/use_cases/lint_package_yml'
1921

2022
module UsePackwerk
2123
module Private
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# typed: strict
2+
3+
module UsePackwerk
4+
module Private
5+
module InteractiveCli
6+
module UseCases
7+
class LintPackageYml
8+
extend T::Sig
9+
extend T::Helpers
10+
include Interface
11+
12+
sig { override.params(prompt: TTY::Prompt).void }
13+
def perform!(prompt)
14+
packs = PackSelector.single_or_all_pack_multi_select(prompt, question_text: 'Please select the packs you want to lint package.yml files for')
15+
packs.each do |p|
16+
new_package = ParsePackwerk::Package.new(
17+
name: p.name,
18+
enforce_privacy: p.enforce_privacy,
19+
enforce_dependencies: p.enforce_dependencies,
20+
dependencies: p.dependencies.uniq.sort,
21+
metadata: p.metadata
22+
)
23+
ParsePackwerk.write_package_yml!(new_package)
24+
end
25+
end
26+
27+
sig { override.returns(String) }
28+
def user_facing_name
29+
'Lint packs/*/package.yml for one or more packs'
30+
end
31+
end
32+
end
33+
end
34+
end
35+
end
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# typed: strict
2+
3+
module UsePackwerk
4+
module Private
5+
module InteractiveCli
6+
module UseCases
7+
class RegenerateRubocopTodo
8+
extend T::Sig
9+
extend T::Helpers
10+
include Interface
11+
12+
sig { override.params(prompt: TTY::Prompt).void }
13+
def perform!(prompt)
14+
packs = PackSelector.single_or_all_pack_multi_select(prompt, question_text: 'Please select the packs you want to regenerate `.rubocop_todo.yml` for')
15+
RuboCop::Packs.auto_generate_rubocop_todo(packs: packs)
16+
end
17+
18+
sig { override.returns(String) }
19+
def user_facing_name
20+
'Regenerate packs/*/.rubocop_todo.yml for one or more packs'
21+
end
22+
end
23+
end
24+
end
25+
end
26+
end

sorbet/rbi/gems/[email protected]

Lines changed: 115 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

use_packwerk.gemspec

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Gem::Specification.new do |spec|
22
spec.name = 'use_packwerk'
3-
spec.version = '0.57.17'
3+
spec.version = '0.58.0'
44
spec.authors = ['Gusto Engineers']
55
spec.email = ['[email protected]']
66

@@ -32,6 +32,7 @@ Gem::Specification.new do |spec|
3232
spec.add_dependency 'colorize'
3333
spec.add_dependency 'package_protections'
3434
spec.add_dependency 'parse_packwerk'
35+
spec.add_dependency 'rubocop-packs'
3536
spec.add_dependency 'sorbet-runtime'
3637
spec.add_dependency 'thor'
3738
spec.add_dependency 'tty-prompt'

0 commit comments

Comments
 (0)