Skip to content

Commit

Permalink
Add linting commands to bin/packs (#43)
Browse files Browse the repository at this point in the history
* Add some commands to bin/packs

* Bump version

* fix name of file

* rubocop
  • Loading branch information
Alex Evanczuk authored Oct 17, 2022
1 parent 3d9ede4 commit be7cc6f
Show file tree
Hide file tree
Showing 6 changed files with 182 additions and 2 deletions.
3 changes: 2 additions & 1 deletion Gemfile.lock
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
PATH
remote: .
specs:
use_packwerk (0.57.17)
use_packwerk (0.58.0)
code_ownership
colorize
package_protections
parse_packwerk
rubocop-packs
sorbet-runtime
thor
tty-prompt
Expand Down
2 changes: 2 additions & 0 deletions lib/use_packwerk/private/interactive_cli.rb
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@
require 'use_packwerk/private/interactive_cli/use_cases/rename'
require 'use_packwerk/private/interactive_cli/use_cases/update_deprecations'
require 'use_packwerk/private/interactive_cli/use_cases/validate'
require 'use_packwerk/private/interactive_cli/use_cases/regenerate_rubocop_todo'
require 'use_packwerk/private/interactive_cli/use_cases/lint_package_yml'

module UsePackwerk
module Private
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# typed: strict

module UsePackwerk
module Private
module InteractiveCli
module UseCases
class LintPackageYml
extend T::Sig
extend T::Helpers
include Interface

sig { override.params(prompt: TTY::Prompt).void }
def perform!(prompt)
packs = PackSelector.single_or_all_pack_multi_select(prompt, question_text: 'Please select the packs you want to lint package.yml files for')
packs.each do |p|
new_package = ParsePackwerk::Package.new(
name: p.name,
enforce_privacy: p.enforce_privacy,
enforce_dependencies: p.enforce_dependencies,
dependencies: p.dependencies.uniq.sort,
metadata: p.metadata
)
ParsePackwerk.write_package_yml!(new_package)
end
end

sig { override.returns(String) }
def user_facing_name
'Lint packs/*/package.yml for one or more packs'
end
end
end
end
end
end
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# typed: strict

module UsePackwerk
module Private
module InteractiveCli
module UseCases
class RegenerateRubocopTodo
extend T::Sig
extend T::Helpers
include Interface

sig { override.params(prompt: TTY::Prompt).void }
def perform!(prompt)
packs = PackSelector.single_or_all_pack_multi_select(prompt, question_text: 'Please select the packs you want to regenerate `.rubocop_todo.yml` for')
RuboCop::Packs.auto_generate_rubocop_todo(packs: packs)
end

sig { override.returns(String) }
def user_facing_name
'Regenerate packs/*/.rubocop_todo.yml for one or more packs'
end
end
end
end
end
end
115 changes: 115 additions & 0 deletions sorbet/rbi/gems/[email protected]

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion use_packwerk.gemspec
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Gem::Specification.new do |spec|
spec.name = 'use_packwerk'
spec.version = '0.57.17'
spec.version = '0.58.0'
spec.authors = ['Gusto Engineers']
spec.email = ['[email protected]']

Expand Down Expand Up @@ -32,6 +32,7 @@ Gem::Specification.new do |spec|
spec.add_dependency 'colorize'
spec.add_dependency 'package_protections'
spec.add_dependency 'parse_packwerk'
spec.add_dependency 'rubocop-packs'
spec.add_dependency 'sorbet-runtime'
spec.add_dependency 'thor'
spec.add_dependency 'tty-prompt'
Expand Down

0 comments on commit be7cc6f

Please sign in to comment.