88 "github.com/hashicorp/terraform-plugin-framework/resource/schema"
99 "github.com/hashicorp/terraform-plugin-framework/schema/validator"
1010 "github.com/hashicorp/terraform-plugin-framework/types"
11+ "github.com/miton18/helper/maps"
1112 "go.clever-cloud.com/terraform-provider/pkg"
1213)
1314
@@ -26,6 +27,14 @@ type Hooks struct {
2627 RunFailed types.String `tfsdk:"run_failed"`
2728}
2829
30+ const (
31+ CC_PRE_BUILD_HOOK = "CC_PRE_BUILD_HOOK"
32+ CC_POST_BUILD_HOOK = "CC_POST_BUILD_HOOK"
33+ CC_PRE_RUN_HOOK = "CC_PRE_RUN_HOOK"
34+ CC_RUN_FAILED_HOOK = "CC_RUN_FAILED_HOOK"
35+ CC_RUN_SUCCEEDED_HOOK = "CC_RUN_SUCCEEDED_HOOK"
36+ )
37+
2938var blocks = map [string ]schema.Block {
3039 "deployment" : schema.SingleNestedBlock {
3140 Attributes : map [string ]schema.Attribute {
@@ -111,11 +120,33 @@ func (hooks *Hooks) ToEnv() map[string]string {
111120 return m
112121 }
113122
114- pkg .IfIsSetStr (hooks .PreBuild , func (script string ) { m [" CC_PRE_BUILD_HOOK" ] = script })
115- pkg .IfIsSetStr (hooks .PostBuild , func (script string ) { m [" CC_POST_BUILD_HOOK" ] = script })
116- pkg .IfIsSetStr (hooks .PreRun , func (script string ) { m [" CC_PRE_RUN_HOOK" ] = script })
117- pkg .IfIsSetStr (hooks .RunFailed , func (script string ) { m [" CC_RUN_FAILED_HOOK" ] = script })
118- pkg .IfIsSetStr (hooks .RunSucceed , func (script string ) { m [" CC_RUN_SUCCEEDED_HOOK" ] = script })
123+ pkg .IfIsSetStr (hooks .PreBuild , func (script string ) { m [CC_PRE_BUILD_HOOK ] = script })
124+ pkg .IfIsSetStr (hooks .PostBuild , func (script string ) { m [CC_POST_BUILD_HOOK ] = script })
125+ pkg .IfIsSetStr (hooks .PreRun , func (script string ) { m [CC_PRE_RUN_HOOK ] = script })
126+ pkg .IfIsSetStr (hooks .RunFailed , func (script string ) { m [CC_RUN_FAILED_HOOK ] = script })
127+ pkg .IfIsSetStr (hooks .RunSucceed , func (script string ) { m [CC_RUN_SUCCEEDED_HOOK ] = script })
119128
120129 return m
121130}
131+
132+ func (hooks * Hooks ) FromEnv (env * maps.Map [string , string ]) {
133+ if script := env .Pop (CC_PRE_BUILD_HOOK ); script != "" {
134+ hooks .PreBuild = pkg .FromStr (script )
135+ }
136+
137+ if script := env .Pop (CC_POST_BUILD_HOOK ); script != "" {
138+ hooks .PostBuild = pkg .FromStr (script )
139+ }
140+
141+ if script := env .Pop (CC_PRE_RUN_HOOK ); script != "" {
142+ hooks .PreRun = pkg .FromStr (script )
143+ }
144+
145+ if script := env .Pop (CC_RUN_SUCCEEDED_HOOK ); script != "" {
146+ hooks .RunSucceed = pkg .FromStr (script )
147+ }
148+
149+ if script := env .Pop (CC_RUN_FAILED_HOOK ); script != "" {
150+ hooks .RunFailed = pkg .FromStr (script )
151+ }
152+ }
0 commit comments