9
9
Either ,
10
10
} from 'effect'
11
11
import { equals } from 'effect/Equal'
12
- const { log } = console
13
12
14
13
const String_UrlHost = Schema . TemplateLiteral (
15
14
Schema . Literal ( 'https://' , 'http://' ) ,
@@ -40,7 +39,7 @@ const Effect_fetch = (url: string | URL | Request, options?: RequestInit) =>
40
39
Effect . tryPromise ( {
41
40
try : ( ) => fetch ( url , options ) ,
42
41
catch : ( error ) => {
43
- log ( error )
42
+ console . error ( error )
44
43
return error
45
44
} ,
46
45
} )
@@ -50,21 +49,27 @@ const Effect_responseJson = (response: Response) =>
50
49
51
50
const Effect_fetchJson = flow ( Effect_fetch , Effect . flatMap ( Effect_responseJson ) )
52
51
53
- log ( 'β³ Running Portainer Deploy Script...' )
52
+ const Effect_logString =
53
+ ( message : string ) =>
54
+ < T > ( x : T ) => {
55
+ console . log ( message )
56
+ return Effect . succeed ( x )
57
+ }
54
58
55
59
export const portainerStackRedeploy = async ( params : {
56
60
host : string
57
61
accessToken : string
58
62
stackName : string
59
63
} ) => {
64
+ console . log ( 'β³ Running Portainer Deploy Script...' )
65
+
60
66
const host = pipe (
61
67
params . host ,
62
68
String . trim ,
63
69
String . replace ( / \/ $ / , '' ) ,
64
70
Schema . decodeUnknownEither ( String_UrlHost ) ,
65
71
Either . getOrThrow ,
66
72
)
67
- log ( { host } )
68
73
69
74
const stack = await pipe (
70
75
Effect_fetchJson ( `${ host } /api/stacks` , {
@@ -79,8 +84,6 @@ export const portainerStackRedeploy = async (params: {
79
84
Effect . runPromise ,
80
85
)
81
86
82
- log ( `${ host } /api/stacks/${ stack . Id } ?endpointId=${ stack . EndpointId } ` )
83
-
84
87
console . log ( 'π Deploying Stack...' )
85
88
await pipe (
86
89
Effect_fetchJson ( `${ host } /api/stacks/${ stack . Id } /file` , {
@@ -89,7 +92,7 @@ export const portainerStackRedeploy = async (params: {
89
92
} ) ,
90
93
Effect . flatMap ( Schema . decodeUnknown ( StackFileResponse ) ) ,
91
94
Effect . map ( Struct . get ( 'StackFileContent' ) ) ,
92
- Effect . tap ( Effect . logDebug ( ' Updating Stack...') ) ,
95
+ Effect . tap ( Effect_logString ( 'πΎ Updating Stack...') ) ,
93
96
Effect . flatMap ( ( stackFile ) =>
94
97
Effect_fetchJson (
95
98
`${ host } /api/stacks/${ stack . Id } ?endpointId=${ stack . EndpointId } ` ,
@@ -103,7 +106,8 @@ export const portainerStackRedeploy = async (params: {
103
106
} ,
104
107
) ,
105
108
) ,
106
- Effect . tap ( Effect . log ) ,
109
+ Effect . tap ( Effect_logString ( 'πΎ Stack updated' ) ) ,
110
+ Effect . tap ( Effect_logString ( 'π Stopping Stack...' ) ) ,
107
111
Effect . flatMap ( ( ) =>
108
112
Effect_fetchJson (
109
113
`${ host } /api/stacks/${ stack . Id } /stop?endpointId=${ stack . EndpointId } ` ,
@@ -113,7 +117,8 @@ export const portainerStackRedeploy = async (params: {
113
117
} ,
114
118
) ,
115
119
) ,
116
- Effect . tap ( Effect . logDebug ( 'Stack stopped' ) ) ,
120
+ Effect . tap ( Effect_logString ( 'π Stack stopped' ) ) ,
121
+ Effect . tap ( Effect_logString ( 'π Starting Stack...' ) ) ,
117
122
Effect . flatMap ( ( ) =>
118
123
Effect_fetchJson (
119
124
`${ host } /api/stacks/${ stack . Id } /start?endpointId=${ stack . EndpointId } ` ,
@@ -123,9 +128,9 @@ export const portainerStackRedeploy = async (params: {
123
128
} ,
124
129
) ,
125
130
) ,
126
- Effect . tap ( Effect . logDebug ( 'Stack deployed' ) ) ,
127
- Effect . mapError ( Effect . logError ) ,
131
+ Effect . tap ( Effect_logString ( 'π Stack deployed' ) ) ,
128
132
Effect . runPromise ,
129
133
)
134
+
130
135
console . log ( 'β
Done!' )
131
136
}
0 commit comments