@@ -93,19 +93,28 @@ impl CommandTrigger {
93
93
94
94
let ( instance, mut store) = instance_builder. instantiate ( ( ) ) . await ?;
95
95
96
- let func = {
97
- let instance_export = instance
98
- . get_export ( & mut store
, None , "wasi:cli/[email protected] " )
99
- . context ( "failed to find the wasi:cli/[email protected] instance in component" ) ?
;
100
-
101
- let func_export = instance
102
- . get_export ( & mut store, Some ( & instance_export) , "run" )
103
- . context ( "failed to find the \" run\" function in wasi:cli/[email protected] instance" ) ?
;
104
-
105
- instance
106
- . get_typed_func :: < ( ) , ( Result < ( ) , ( ) > , ) > ( & mut store, func_export)
107
- . context ( "failed to get typed \" run\" function" ) ?
108
- } ;
96
+ let versions = [ "0.2.3" , "0.2.2" , "0.2.1" , "0.2.0" ] ;
97
+ let mut func = None ;
98
+
99
+ for version in versions {
100
+ if let Some ( instance_export) =
101
+ instance. get_export ( & mut store, None , & format ! ( "wasi:cli/run@{}" , version) )
102
+ {
103
+ if let Some ( func_export) =
104
+ instance. get_export ( & mut store, Some ( & instance_export) , "run" )
105
+ {
106
+ if let Ok ( typed_func) =
107
+ instance. get_typed_func :: < ( ) , ( Result < ( ) , ( ) > , ) > ( & mut store, func_export)
108
+ {
109
+ func = Some ( typed_func) ;
110
+ break ;
111
+ }
112
+ }
113
+ }
114
+ }
115
+
116
+ let func = func
117
+ . context ( "failed to find a compatible wasi:cli/run instance with a \" run\" function" ) ?;
109
118
let _ = func. call_async ( & mut store, ( ) ) . await ?;
110
119
111
120
Ok ( ( ) )
0 commit comments