1
1
mod launch_metadata;
2
+ mod sqlite_statements;
2
3
mod summary;
3
4
4
5
use std:: future:: Future ;
@@ -13,6 +14,7 @@ use spin_common::{arg_parser::parse_kv, sloth};
13
14
use spin_core:: async_trait;
14
15
use spin_factors_executor:: { ComponentLoader , FactorsExecutor } ;
15
16
use spin_runtime_config:: { ResolvedRuntimeConfig , UserProvidedPath } ;
17
+ use sqlite_statements:: SqlStatementExecutorHook ;
16
18
use summary:: KeyValueDefaultStoreSummaryHook ;
17
19
18
20
use crate :: factors:: { TriggerFactors , TriggerFactorsRuntimeConfig } ;
@@ -198,6 +200,7 @@ impl<T: Trigger> FactorsTriggerCommand<T> {
198
200
state_dir : self . state_dir . as_deref ( ) ,
199
201
local_app_dir : local_app_dir. as_deref ( ) ,
200
202
initial_key_values : self . key_values ,
203
+ sqlite_statements : self . sqlite_statements ,
201
204
allow_transient_write : self . allow_transient_write ,
202
205
follow_components,
203
206
log_dir : self . log ,
@@ -277,6 +280,8 @@ pub struct TriggerAppOptions<'a> {
277
280
local_app_dir : Option < & ' a str > ,
278
281
/// Initial key/value pairs to set in the app's default store.
279
282
initial_key_values : Vec < ( String , String ) > ,
283
+ /// SQLite statements to run.
284
+ sqlite_statements : Vec < String > ,
280
285
/// Whether to allow transient writes to mounted files
281
286
allow_transient_write : bool ,
282
287
/// Which components should have their logs followed.
@@ -351,8 +356,6 @@ impl<T: Trigger> TriggerAppBuilder<T> {
351
356
)
352
357
. context ( "failed to create factors" ) ?;
353
358
354
- // TODO(factors): handle: self.sqlite_statements
355
-
356
359
// TODO: port the rest of the component loader logic
357
360
struct SimpleComponentLoader ;
358
361
@@ -421,6 +424,7 @@ impl<T: Trigger> TriggerAppBuilder<T> {
421
424
// TODO:
422
425
// builder.hooks(SummariseRuntimeConfigHook::new(&self.runtime_config_file));
423
426
executor. add_hooks ( KeyValueDefaultStoreSummaryHook ) ;
427
+ executor. add_hooks ( SqlStatementExecutorHook :: new ( options. sqlite_statements ) ) ;
424
428
// builder.hooks(SqlitePersistenceMessageHook);
425
429
426
430
let configured_app = {
0 commit comments