diff --git a/utils/adapter_cqrs_init.sh b/utils/adapter_cqrs_init.sh new file mode 100755 index 0000000..5410d98 --- /dev/null +++ b/utils/adapter_cqrs_init.sh @@ -0,0 +1,44 @@ +#!/bin/bash + +help() { + echo "Usage: adapter_type_gen.sh + + " +} + +run() { + for i in "${@:2}" + do + echo "let (${i}_cqrs_exec, ${i}_cqrs_query) = ${i}_view::init_cqrs(db.clone(), services.clone());" + done + + echo "let ${1,,}_cqrs_exec = types::Web$1CqrsExec::new(Arc::new(types::$1CqrsExecBuilder::default()" + for i in "${@:2}" + do + echo ".$i(${i}_cqrs_exec)" + done + echo ".build().unwrap(),));" + + echo " + let f = move |cfg: &mut web::ServiceConfig| { + cfg.configure(input::web::load_ctx());" + for i in "${@:2}" + do + echo "cfg.app_data(Data::new(${i}_cqrs_query.clone()));" + done + + echo "cfg.app_data(${1,,}_cqrs_exec.clone()); + }; + + Box::new(f)" + +} + + +if [ -z $1 ] +then + help +else + run "${@}" + run "${@}" | wl-copy +fi