@@ -47,72 +47,12 @@ struct PluginCommand: SwiftCommand {
47
47
)
48
48
var additionalAllowedWritableDirectories : [ String ] = [ ]
49
49
50
- enum NetworkPermission : EnumerableFlag , ExpressibleByArgument {
51
- static var allCases : [ PluginCommand . PluginOptions . NetworkPermission ] {
52
- return [ . none, . local( ports: [ ] ) , . all( ports: [ ] ) , . docker, . unixDomainSocket]
53
- }
54
-
50
+ enum NetworkPermission : String , EnumerableFlag , ExpressibleByArgument {
55
51
case none
56
- case local( ports : [ Int ] )
57
- case all( ports : [ Int ] )
52
+ case local
53
+ case all
58
54
case docker
59
55
case unixDomainSocket
60
-
61
- init ? ( argument: String ) {
62
- let arg = argument. lowercased ( )
63
- switch arg {
64
- case " none " :
65
- self = . none
66
- case " docker " :
67
- self = . docker
68
- case " unixdomainsocket " :
69
- self = . unixDomainSocket
70
- default :
71
- if " all " == arg. prefix ( 3 ) {
72
- let ports = Self . parsePorts ( arg)
73
- self = . all( ports: ports)
74
- } else if " local " == arg. prefix ( 5 ) {
75
- let ports = Self . parsePorts ( arg)
76
- self = . local( ports: ports)
77
- } else {
78
- return nil
79
- }
80
- }
81
- }
82
-
83
- static func parsePorts( _ string: String ) -> [ Int ] {
84
- let parts = string. split ( separator: " : " )
85
- guard parts. count == 2 else {
86
- return [ ]
87
- }
88
- return parts [ 1 ]
89
- . split ( separator: " , " )
90
- . compactMap { String ( $0) . spm_chuzzle ( ) }
91
- . compactMap { Int ( $0) }
92
- }
93
-
94
- var remedyDescription : String {
95
- switch self {
96
- case . none:
97
- return " none "
98
- case . local( let ports) :
99
- if ports. isEmpty {
100
- return " local "
101
- } else {
102
- return " local: \( ports. map ( String . init) . joined ( separator: " , " ) ) "
103
- }
104
- case . all( let ports) :
105
- if ports. isEmpty {
106
- return " all "
107
- } else {
108
- return " all: \( ports. map ( String . init) . joined ( separator: " , " ) ) "
109
- }
110
- case . docker:
111
- return " docker "
112
- case . unixDomainSocket:
113
- return " unixDomainSocket "
114
- }
115
- }
116
56
}
117
57
118
58
@Option ( name: . customLong( " allow-network-connections " ) )
@@ -271,7 +211,7 @@ struct PluginCommand: SwiftCommand {
271
211
272
212
reasonString = reason
273
213
remedyOption =
274
- " --allow-network-connections \( PluginCommand . PluginOptions. NetworkPermission ( scope) . remedyDescription ) "
214
+ " --allow-network-connections \( PluginCommand . PluginOptions. NetworkPermission ( scope) . defaultValueDescription ) "
275
215
}
276
216
277
217
let problem = " Plugin ‘ \( plugin. name) ’ wants permission to \( permissionString) . "
@@ -436,8 +376,8 @@ extension PluginCommand.PluginOptions.NetworkPermission {
436
376
case . unixDomainSocket: self = . unixDomainSocket
437
377
case . docker: self = . docker
438
378
case . none: self = . none
439
- case . all( let ports ) : self = . all( ports : ports )
440
- case . local( let ports ) : self = . local( ports : ports )
379
+ case . all: self = . all
380
+ case . local: self = . local
441
381
}
442
382
}
443
383
}
@@ -446,8 +386,8 @@ extension SandboxNetworkPermission {
446
386
init ( _ permission: PluginCommand . PluginOptions . NetworkPermission ) {
447
387
switch permission {
448
388
case . none: self = . none
449
- case . local( let ports ) : self = . local( ports: ports )
450
- case . all( let ports ) : self = . all( ports: ports )
389
+ case . local: self = . local( ports: [ ] )
390
+ case . all: self = . all( ports: [ ] )
451
391
case . docker: self = . docker
452
392
case . unixDomainSocket: self = . unixDomainSocket
453
393
}
0 commit comments