@@ -18,8 +18,6 @@ pub struct CommandTrigger {
18
18
#[ serde( deny_unknown_fields) ]
19
19
pub struct Component {
20
20
pub id : String ,
21
- #[ serde( default ) ]
22
- pub executor : CommandExecutorType ,
23
21
}
24
22
25
23
#[ derive( Clone , Debug , Default , Deserialize , Serialize ) ]
@@ -40,8 +38,6 @@ pub enum CommandExecutorType {
40
38
#[ serde( deny_unknown_fields) ]
41
39
pub struct CommandTriggerConfig {
42
40
pub component : String ,
43
- #[ serde( default ) ]
44
- pub executor : CommandExecutorType ,
45
41
}
46
42
47
43
pub enum CommandInstancePre {
@@ -67,7 +63,6 @@ impl TriggerExecutor for CommandTrigger {
67
63
. trigger_configs ( )
68
64
. map ( |( _, config) | Component {
69
65
id : config. component . clone ( ) ,
70
- executor : config. executor . clone ( ) ,
71
66
} )
72
67
. collect ( ) ;
73
68
Ok ( Self { engine, components } )
@@ -85,18 +80,17 @@ impl TriggerInstancePre<RuntimeData, CommandTriggerConfig> for CommandInstancePr
85
80
async fn instantiate_pre (
86
81
engine : & Engine < RuntimeData > ,
87
82
component : & AppComponent ,
88
- config : & CommandTriggerConfig ,
83
+ _config : & CommandTriggerConfig ,
89
84
) -> Result < CommandInstancePre > {
90
- if let CommandExecutorType :: Preview1 = & config. executor {
85
+ if let Ok ( comp) = component. load_component ( engine) . await {
86
+ Ok ( CommandInstancePre :: Component (
87
+ engine. instantiate_pre ( & comp) ?,
88
+ ) )
89
+ } else {
91
90
let module = component. load_module ( engine) . await ?;
92
91
Ok ( CommandInstancePre :: Module (
93
92
engine. module_instantiate_pre ( & module) ?,
94
93
) )
95
- } else {
96
- let comp = component. load_component ( engine) . await ?;
97
- Ok ( CommandInstancePre :: Component (
98
- engine. instantiate_pre ( & comp) ?,
99
- ) )
100
94
}
101
95
}
102
96
@@ -117,36 +111,33 @@ impl TriggerInstancePre<RuntimeData, CommandTriggerConfig> for CommandInstancePr
117
111
impl CommandTrigger {
118
112
pub async fn handle ( & self ) -> Result < ( ) > {
119
113
let component = & self . components [ 0 ] ;
120
- match component. executor {
121
- CommandExecutorType :: Preview2 => {
122
- let ( instance, mut store) = self . engine . prepare_instance ( & component. id ) . await ?;
123
- let CommandInstance :: Component ( instance) = instance else {
124
- unreachable ! ( )
125
- } ;
114
+ let ( instance, mut store) = self . engine . prepare_instance ( & component. id ) . await ?;
115
+ match instance {
116
+ CommandInstance :: Component ( instance) => {
126
117
let handler =
127
118
wasmtime_wasi:: preview2:: command:: Command :: new ( & mut store, & instance) ?;
128
119
let _ = handler. wasi_cli_run ( ) . call_run ( store) . await ?;
129
120
}
130
- CommandExecutorType :: Preview1 => {
121
+ CommandInstance :: Module ( _ ) => {
131
122
let store_builder = self
132
123
. engine
133
124
. store_builder ( & component. id , spin_core:: WasiVersion :: Preview1 ) ?;
134
125
let ( instance, mut store) = self
135
126
. engine
136
127
. prepare_instance_with_store ( & component. id , store_builder)
137
128
. await ?;
138
-
139
- let CommandInstance :: Module ( instance) = instance else {
140
- unreachable ! ( )
141
- } ;
142
-
143
- let start = instance
144
- . get_func ( & mut store, "_start" )
145
- . context ( "Expected component to export _start function" ) ?;
146
-
147
- let _ = start. call_async ( & mut store, & [ ] , & mut [ ] ) . await ?;
129
+ if let CommandInstance :: Module ( instance) = instance {
130
+ let start = instance
131
+ . get_func ( & mut store, "_start" )
132
+ . context ( "Expected component to export _start function" ) ?;
133
+
134
+ let _ = start. call_async ( & mut store, & [ ] , & mut [ ] ) . await ?;
135
+ } else {
136
+ unreachable ! ( ) ;
137
+ }
148
138
}
149
- } ;
139
+ }
140
+
150
141
Ok ( ( ) )
151
142
}
152
143
}
0 commit comments