oswilno/scripts/generate-entries.sh

62 lines
2.3 KiB
Bash
Raw Normal View History

2023-07-27 17:36:30 +02:00
# set -ex
2023-07-26 16:30:35 +02:00
sea-orm-cli generate entity -v -l --expanded-format -o ./crates/oswilno-contract/src -u postgres://postgres@localhost/oswilno
2023-07-27 08:59:51 +02:00
2023-07-26 16:30:35 +02:00
for f in $( ls ./crates/oswilno-contract/src/*.rs ); do
2023-07-27 08:59:51 +02:00
# bad generated code patch
2023-07-26 16:30:35 +02:00
sed -i 's/db_type().def()/db_type()/g' $f
done
2023-07-27 08:59:51 +02:00
2023-09-14 17:12:41 +02:00
rm -Rf /tmp/ajosdfjosdpjfojsdfjpajpfa
for f in $(ls crates/oswilno-contract/src/*.rs); do
while read line; do
case $line in
"use sea_orm::entity::prelude::*;" )
echo "use actix_admin::prelude::*;" >> /tmp/ajosdfjosdpjfojsdfjpajpfa
2023-09-15 17:07:22 +02:00
echo '#[allow(unused_imports)]' >> /tmp/ajosdfjosdpjfojsdfjpajpfa
2023-09-14 17:12:41 +02:00
echo 'use sea_orm::Iterable;' >> /tmp/ajosdfjosdpjfojsdfjpajpfa
;;
*"EntityName for Entity"* )
echo "impl ActixAdminModelValidationTrait<ActiveModel> for Entity {}" >> /tmp/ajosdfjosdpjfojsdfjpajpfa
echo "impl ActixAdminModelFilterTrait<Entity> for Entity {}" >> /tmp/ajosdfjosdpjfojsdfjpajpfa
;;
"pub enum"* )
if [[ "$f" == "crates/oswilno-contract/src/sea_orm_active_enums.rs" ]]; then
echo "#[derive(oswilno_actix_admin::ActixAdminEnum, serde::Serialize, DeriveActixAdminEnumSelectList)]" >> /tmp/ajosdfjosdpjfojsdfjpajpfa
fi
;;
*"struct Model"* )
echo "#[derive(DeriveActixAdmin, DeriveActixAdminModel, DeriveActixAdminViewModel)]" >> /tmp/ajosdfjosdpjfojsdfjpajpfa
;;
"pub id: i32," )
echo "#[actix_admin(primary_key)]" >> /tmp/ajosdfjosdpjfojsdfjpajpfa
;;
"pub location_id"* )
2023-09-15 17:07:22 +02:00
echo '#[actix_admin(select_list=crate::parking_space_locations::Entity)]' >> /tmp/ajosdfjosdpjfojsdfjpajpfa
;;
"pub email: String," )
echo '#[actix_admin(html_input_type = "email")]' >> /tmp/ajosdfjosdpjfojsdfjpajpfa
2023-09-14 17:12:41 +02:00
;;
"pub state"* )
2023-09-15 17:07:22 +02:00
echo '#[actix_admin(select_list=crate::parking_spaces::ParkingSpaceState)]' >> /tmp/ajosdfjosdpjfojsdfjpajpfa
;;
"pub pass_hash: String," )
echo "#[actix_admin(list_hide_column)]" >> /tmp/ajosdfjosdpjfojsdfjpajpfa
2023-09-14 17:12:41 +02:00
;;
*"_at: DateTime," )
echo "#[actix_admin(list_hide_column)]" >> /tmp/ajosdfjosdpjfojsdfjpajpfa
;;
*"parking_space_id"* )
2023-09-15 17:07:22 +02:00
echo '#[actix_admin(select_list=crate::parking_spaces::Entity)]' >> /tmp/ajosdfjosdpjfojsdfjpajpfa
2023-09-14 17:12:41 +02:00
;;
esac
echo $line >> /tmp/ajosdfjosdpjfojsdfjpajpfa
done < $f
cat /tmp/ajosdfjosdpjfojsdfjpajpfa
mv /tmp/ajosdfjosdpjfojsdfjpajpfa $f
done
2023-07-27 17:36:30 +02:00
2023-07-27 08:59:51 +02:00
cargo fmt