@@ -47,20 +47,27 @@ def self.replace_in_file(file:, find:, replace_with:)
4747 sig do
4848 params (
4949 pack_name : String ,
50- enforce_privacy : T ::Boolean ,
5150 enforce_dependencies : T . nilable ( T ::Boolean ) ,
51+ enforce_privacy : T ::Boolean ,
52+ enforce_architecture : T ::Boolean ,
5253 team : T . nilable ( CodeTeams ::Team )
5354 ) . void
5455 end
55- def self . create_pack! ( pack_name :, enforce_privacy :, enforce_dependencies :, team :)
56+ def self . create_pack! ( pack_name :, enforce_dependencies : , enforce_privacy :, enforce_architecture :, team :)
5657 Logging . section ( '👋 Hi!' ) do
5758 intro = Packs . config . user_event_logger . before_create_pack ( pack_name )
5859 Logging . print_bold_green ( intro )
5960 end
6061
6162 pack_name = Private . clean_pack_name ( pack_name )
6263
63- package = create_pack_if_not_exists! ( pack_name : pack_name , enforce_privacy : enforce_privacy , enforce_dependencies : enforce_dependencies , team : team )
64+ package = create_pack_if_not_exists! (
65+ pack_name : pack_name ,
66+ enforce_dependencies : enforce_dependencies ,
67+ enforce_privacy : enforce_privacy ,
68+ enforce_architecture : enforce_architecture ,
69+ team : team
70+ )
6471 add_public_directory ( package ) if package . enforce_privacy
6572 add_readme_todo ( package )
6673
@@ -160,8 +167,9 @@ def self.move_to_folder!(pack_name:, destination:, per_file_processors: [Packs::
160167
161168 new_package = ParsePackwerk ::Package . new (
162169 name : new_package_name ,
163- enforce_privacy : package . enforce_privacy ,
164170 enforce_dependencies : package . enforce_dependencies ,
171+ enforce_privacy : package . enforce_privacy ,
172+ enforce_architecture : package . enforce_architecture ,
165173 dependencies : package . dependencies ,
166174 violations : package . violations ,
167175 metadata : package . metadata ,
@@ -196,8 +204,9 @@ def self.move_to_folder!(pack_name:, destination:, per_file_processors: [Packs::
196204
197205 new_other_package = ParsePackwerk ::Package . new (
198206 name : other_package . name ,
199- enforce_privacy : other_package . enforce_privacy ,
200207 enforce_dependencies : other_package . enforce_dependencies ,
208+ enforce_privacy : other_package . enforce_privacy ,
209+ enforce_architecture : other_package . enforce_architecture ,
201210 dependencies : new_dependencies . uniq . sort ,
202211 violations : other_package . violations ,
203212 metadata : other_package . metadata ,
@@ -238,7 +247,12 @@ def self.move_to_parent!(
238247 parent_name = Private . clean_pack_name ( parent_name )
239248 parent_package = ParsePackwerk . all . find { |p | p . name == parent_name }
240249 if parent_package . nil?
241- parent_package = create_pack_if_not_exists! ( pack_name : parent_name , enforce_privacy : true , enforce_dependencies : true )
250+ parent_package = create_pack_if_not_exists! (
251+ pack_name : parent_name ,
252+ enforce_dependencies : true ,
253+ enforce_privacy : true ,
254+ enforce_architecture : true
255+ )
242256 end
243257
244258 # First we create a new pack that has the exact same properties of the old one!
@@ -249,6 +263,7 @@ def self.move_to_parent!(
249263 name : new_package_name ,
250264 enforce_privacy : package . enforce_privacy ,
251265 enforce_dependencies : package . enforce_dependencies ,
266+ enforce_architecture : package . enforce_architecture ,
252267 dependencies : package . dependencies ,
253268 violations : package . violations ,
254269 metadata : package . metadata ,
@@ -289,8 +304,9 @@ def self.move_to_parent!(
289304
290305 new_other_package = ParsePackwerk ::Package . new (
291306 name : other_package . name ,
292- enforce_privacy : other_package . enforce_privacy ,
293307 enforce_dependencies : other_package . enforce_dependencies ,
308+ enforce_privacy : other_package . enforce_privacy ,
309+ enforce_architecture : other_package . enforce_architecture ,
294310 dependencies : new_dependencies . uniq . sort ,
295311 violations : other_package . violations ,
296312 metadata : other_package . metadata ,
@@ -382,6 +398,7 @@ def self.add_dependency!(pack_name:, dependency_name:)
382398 name : pack_name ,
383399 dependencies : ( package . dependencies + [ dependency_name ] ) . uniq . sort ,
384400 enforce_privacy : package . enforce_privacy ,
401+ enforce_architecture : package . enforce_architecture ,
385402 enforce_dependencies : package . enforce_dependencies ,
386403 violations : package . violations ,
387404 metadata : package . metadata ,
@@ -447,12 +464,13 @@ def self.add_readme_todo(package)
447464 sig do
448465 params (
449466 pack_name : String ,
450- enforce_privacy : T ::Boolean ,
451467 enforce_dependencies : T . nilable ( T ::Boolean ) ,
468+ enforce_privacy : T ::Boolean ,
469+ enforce_architecture : T ::Boolean ,
452470 team : T . nilable ( CodeTeams ::Team )
453471 ) . returns ( ParsePackwerk ::Package )
454472 end
455- def self . create_pack_if_not_exists! ( pack_name :, enforce_privacy :, enforce_dependencies :, team : nil )
473+ def self . create_pack_if_not_exists! ( pack_name :, enforce_dependencies : , enforce_privacy :, enforce_architecture :, team : nil )
456474 allowed_locations = Packs ::Specification . config . pack_paths
457475 if allowed_locations . none? { |location | File . fnmatch ( location , pack_name ) }
458476 raise StandardError , "Packs only supports packages in the the following directories: #{ allowed_locations } . Please make sure to pass in the name of the pack including the full directory path, e.g. `packs/my_pack`."
@@ -475,6 +493,7 @@ def self.create_pack_if_not_exists!(pack_name:, enforce_privacy:, enforce_depend
475493 package = ParsePackwerk ::Package . new (
476494 enforce_dependencies : should_enforce_dependencies || false ,
477495 enforce_privacy : enforce_privacy ,
496+ enforce_architecture : enforce_architecture ,
478497 dependencies : [ ] ,
479498 violations : [ ] ,
480499 metadata : { } ,
0 commit comments