@@ -426,9 +426,11 @@ public enum SystemPackageProvider {
426
426
#if PACKAGE_DESCRIPTION_4
427
427
case brewItem( [ String ] )
428
428
case aptItem( [ String ] )
429
+ case yumItem( [ String ] )
429
430
#else
430
431
case _brewItem( [ String ] )
431
432
case _aptItem( [ String ] )
433
+ case _yumItem( [ String ] )
432
434
#endif
433
435
434
436
/// Declare the list of installable packages using the homebrew package
@@ -456,6 +458,19 @@ public enum SystemPackageProvider {
456
458
return . _aptItem( packages)
457
459
#endif
458
460
}
461
+
462
+ /// Declare the list of installable packages using the yum package
463
+ /// manager on RHEL/CentOS to create a system package provider instance.
464
+ ///
465
+ /// - Parameters:
466
+ /// - packages: The list of package names.
467
+ public static func yum( _ packages: [ String ] ) -> SystemPackageProvider {
468
+ #if PACKAGE_DESCRIPTION_4
469
+ return . yumItem( packages)
470
+ #else
471
+ return . _yumItem( packages)
472
+ #endif
473
+ }
459
474
}
460
475
461
476
// MARK: Package JSON serialization
@@ -513,6 +528,7 @@ extension SystemPackageProvider: Encodable {
513
528
private enum Name : String , Encodable {
514
529
case brew
515
530
case apt
531
+ case yum
516
532
}
517
533
518
534
public func encode( to encoder: Encoder ) throws {
@@ -525,6 +541,9 @@ extension SystemPackageProvider: Encodable {
525
541
case . aptItem( let packages) :
526
542
try container. encode ( Name . apt, forKey: . name)
527
543
try container. encode ( packages, forKey: . values)
544
+ case . yumItem( let packages) :
545
+ try container. encode ( Name . yum, forKey: . name)
546
+ try container. encode ( packages, forKey: . values)
528
547
}
529
548
#else
530
549
switch self {
@@ -534,6 +553,9 @@ extension SystemPackageProvider: Encodable {
534
553
case . _aptItem( let packages) :
535
554
try container. encode ( Name . apt, forKey: . name)
536
555
try container. encode ( packages, forKey: . values)
556
+ case . _yumItem( let packages) :
557
+ try container. encode ( Name . yum, forKey: . name)
558
+ try container. encode ( packages, forKey: . values)
537
559
}
538
560
#endif
539
561
}
0 commit comments