@@ -6,19 +6,39 @@ import { Effect } from "effect"
66import { runCommandCapture , runCommandExitCode , runCommandWithExitCodes } from "./command-runner.js"
77import { DockerCommandError } from "./errors.js"
88
9- export const runDockerNetworkConnectBridge = (
9+ const runDockerNetworkCommand = (
1010 cwd : string ,
11- containerName : string
11+ args : ReadonlyArray < string >
1212) : Effect . Effect < void , DockerCommandError | PlatformError , CommandExecutor . CommandExecutor > =>
13+ runCommandWithExitCodes (
14+ {
15+ cwd,
16+ command : "docker" ,
17+ args
18+ } ,
19+ [ Number ( ExitCode ( 0 ) ) ] ,
20+ ( exitCode ) => new DockerCommandError ( { exitCode } )
21+ )
22+
23+ const runDockerNetworkCapture = (
24+ cwd : string ,
25+ args : ReadonlyArray < string >
26+ ) : Effect . Effect < string , DockerCommandError | PlatformError , CommandExecutor . CommandExecutor > =>
1327 runCommandCapture (
1428 {
1529 cwd,
1630 command : "docker" ,
17- args : [ "network" , "connect" , "bridge" , containerName ]
31+ args
1832 } ,
1933 [ Number ( ExitCode ( 0 ) ) ] ,
2034 ( exitCode ) => new DockerCommandError ( { exitCode } )
21- ) . pipe ( Effect . asVoid )
35+ )
36+
37+ export const runDockerNetworkConnectBridge = (
38+ cwd : string ,
39+ containerName : string
40+ ) : Effect . Effect < void , DockerCommandError | PlatformError , CommandExecutor . CommandExecutor > =>
41+ runDockerNetworkCapture ( cwd , [ "network" , "connect" , "bridge" , containerName ] ) . pipe ( Effect . asVoid )
2242
2343export const runDockerNetworkExists = (
2444 cwd : string ,
@@ -34,44 +54,20 @@ export const runDockerNetworkCreateBridge = (
3454 cwd : string ,
3555 networkName : string
3656) : Effect . Effect < void , DockerCommandError | PlatformError , CommandExecutor . CommandExecutor > =>
37- runCommandWithExitCodes (
38- {
39- cwd,
40- command : "docker" ,
41- args : [ "network" , "create" , "--driver" , "bridge" , networkName ]
42- } ,
43- [ Number ( ExitCode ( 0 ) ) ] ,
44- ( exitCode ) => new DockerCommandError ( { exitCode } )
45- )
57+ runDockerNetworkCommand ( cwd , [ "network" , "create" , "--driver" , "bridge" , networkName ] )
4658
4759export const runDockerNetworkCreateBridgeWithSubnet = (
4860 cwd : string ,
4961 networkName : string ,
5062 subnet : string
5163) : Effect . Effect < void , DockerCommandError | PlatformError , CommandExecutor . CommandExecutor > =>
52- runCommandWithExitCodes (
53- {
54- cwd,
55- command : "docker" ,
56- args : [ "network" , "create" , "--driver" , "bridge" , "--subnet" , subnet , networkName ]
57- } ,
58- [ Number ( ExitCode ( 0 ) ) ] ,
59- ( exitCode ) => new DockerCommandError ( { exitCode } )
60- )
64+ runDockerNetworkCommand ( cwd , [ "network" , "create" , "--driver" , "bridge" , "--subnet" , subnet , networkName ] )
6165
6266export const runDockerNetworkContainerCount = (
6367 cwd : string ,
6468 networkName : string
6569) : Effect . Effect < number , DockerCommandError | PlatformError , CommandExecutor . CommandExecutor > =>
66- runCommandCapture (
67- {
68- cwd,
69- command : "docker" ,
70- args : [ "network" , "inspect" , "-f" , "{{len .Containers}}" , networkName ]
71- } ,
72- [ Number ( ExitCode ( 0 ) ) ] ,
73- ( exitCode ) => new DockerCommandError ( { exitCode } )
74- ) . pipe (
70+ runDockerNetworkCapture ( cwd , [ "network" , "inspect" , "-f" , "{{len .Containers}}" , networkName ] ) . pipe (
7571 Effect . map ( ( output ) => {
7672 const parsed = Number . parseInt ( output . trim ( ) , 10 )
7773 return Number . isNaN ( parsed ) ? 0 : parsed
@@ -82,12 +78,4 @@ export const runDockerNetworkRemove = (
8278 cwd : string ,
8379 networkName : string
8480) : Effect . Effect < void , DockerCommandError | PlatformError , CommandExecutor . CommandExecutor > =>
85- runCommandWithExitCodes (
86- {
87- cwd,
88- command : "docker" ,
89- args : [ "network" , "rm" , networkName ]
90- } ,
91- [ Number ( ExitCode ( 0 ) ) ] ,
92- ( exitCode ) => new DockerCommandError ( { exitCode } )
93- )
81+ runDockerNetworkCommand ( cwd , [ "network" , "rm" , networkName ] )
0 commit comments