@@ -17,6 +17,21 @@ export type DockerContainerRuntimeInfo = {
1717 readonly composeService ?: string | undefined
1818}
1919
20+ type DockerInspectReader < A > = (
21+ cwd : string ,
22+ containerName : string
23+ ) => Effect . Effect < A , DockerCommandError | PlatformError , CommandExecutor . CommandExecutor >
24+
25+ const createDockerInspectReader = < A > (
26+ format : string ,
27+ parse : ( output : string ) => A
28+ ) : DockerInspectReader < A > =>
29+ ( cwd , containerName ) =>
30+ pipe (
31+ runDockerInspectValue ( cwd , containerName , format ) ,
32+ Effect . map ( ( output ) => parse ( output ) )
33+ )
34+
2035const runDockerInspectValue = (
2136 cwd : string ,
2237 containerName : string ,
@@ -48,32 +63,24 @@ export const runDockerExecExitCode = (
4863 return Number ( exitCode )
4964 } )
5065
51- export const runDockerInspectContainerIp = (
52- cwd : string ,
53- containerName : string
54- ) : Effect . Effect < string , DockerCommandError | PlatformError , CommandExecutor . CommandExecutor > =>
55- pipe (
56- runDockerInspectValue (
57- cwd ,
58- containerName ,
59- String . raw `{{range $k,$v := .NetworkSettings.Networks}}{{printf "%s=%s\n" $k $v.IPAddress}}{{end}}`
60- ) ,
61- Effect . map ( ( output ) => {
62- const lines = output
63- . trim ( )
64- . split ( / \r ? \n / )
65- . map ( ( line ) => line . trim ( ) )
66- . filter ( ( line ) => line . length > 0 )
66+ export const runDockerInspectContainerIp = createDockerInspectReader (
67+ String . raw `{{range $k,$v := .NetworkSettings.Networks}}{{printf "%s=%s\n" $k $v.IPAddress}}{{end}}` ,
68+ ( output ) => {
69+ const lines = output
70+ . trim ( )
71+ . split ( / \r ? \n / )
72+ . map ( ( line ) => line . trim ( ) )
73+ . filter ( ( line ) => line . length > 0 )
6774
68- const entries = lines . flatMap ( ( line ) => parseInspectNetworkEntry ( line ) )
69- if ( entries . length === 0 ) {
70- return ""
71- }
75+ const entries = lines . flatMap ( ( line ) => parseInspectNetworkEntry ( line ) )
76+ if ( entries . length === 0 ) {
77+ return ""
78+ }
7279
73- const entryMap = new Map ( entries )
74- return entryMap . get ( "bridge" ) ?? entries [ 0 ] ! [ 1 ]
75- } )
76- )
80+ const entryMap = new Map ( entries )
81+ return entryMap . get ( "bridge" ) ?? entries [ 0 ] ! [ 1 ]
82+ }
83+ )
7784
7885export const runDockerInspectContainerRuntimeInfo = (
7986 cwd : string ,
@@ -104,18 +111,10 @@ export const runDockerInspectContainerRuntimeInfo = (
104111 Effect . catchTag ( "DockerCommandError" , ( ) => Effect . succeed ( null ) )
105112 )
106113
107- export const runDockerInspectContainerBridgeIp = (
108- cwd : string ,
109- containerName : string
110- ) : Effect . Effect < string , DockerCommandError | PlatformError , CommandExecutor . CommandExecutor > =>
111- pipe (
112- runDockerInspectValue (
113- cwd ,
114- containerName ,
115- "{{with (index .NetworkSettings.Networks \"bridge\")}}{{.IPAddress}}{{end}}"
116- ) ,
117- Effect . map ( ( output ) => output . trim ( ) )
118- )
114+ export const runDockerInspectContainerBridgeIp = createDockerInspectReader (
115+ "{{with (index .NetworkSettings.Networks \"bridge\")}}{{.IPAddress}}{{end}}" ,
116+ ( output ) => output . trim ( )
117+ )
119118
120119export const runDockerPsNames = (
121120 cwd : string
0 commit comments