#!/usr/bin/env bash set -euo pipefail # macOS (BSD) sed requires an empty-string argument after -i; GNU sed does not if sed --version 2>/dev/null | grep -q GNU; then SI=(sed -i) else SI=(sed -i '') fi sed_in_place() { local expression="$1" shift "${SI[@]}" "$expression" "$@" } replace_rs() { local expression="$1" shift find "$@" -type f -name '*.rs' -exec "${SI[@]}" "$expression" {} + } rm -rf sea-orm-sync/src rm -rf sea-orm-sync/tests cp -r src sea-orm-sync cp -r tests sea-orm-sync cp examples/quickstart/src/main.rs sea-orm-sync/examples/quickstart/src/main.rs rm -rf sea-orm-sync/src/bin cd sea-orm-sync replace_rs "s/Pin, DbErr>> + 'a + Send>>/Result, DbErr>/" src replace_rs "s/Pin> + Send + 'b>>/Result/" src replace_rs "s/Pin> + Send + 'c>>/Result/" src replace_rs 's/Box::pin(async move {/({/' src replace_rs 's/Box::pin(async move {/({/' tests replace_rs 's/AsyncFnOnce/FnOnce/g' src replace_rs 's/transaction_with_config_async/transaction_with_config/g' src tests replace_rs 's/transaction_async/transaction/g' src tests replace_rs 's/async //' src replace_rs 's/async //' tests replace_rs 's/async //' examples replace_rs 's/\.await//' src replace_rs 's/\.await//' tests replace_rs 's/\.await//' examples replace_rs '/#\[async_trait::async_trait/d' src replace_rs '/#\[async_trait::async_trait/d' tests replace_rs 's/#\[smol_potat::test\]/#\[test\]/' src replace_rs '/#\[smol_potat::main\]/d' src replace_rs '/#\[tokio::main\]/d' examples replace_rs 's/#\[tokio::test\]/#\[test\]/' src replace_rs 's/#\[cfg(feature = "sqlx-sqlite")\]/#\[cfg(feature = "rusqlite")\]/' tests replace_rs '/[a-zA-Z]+: Send + Sync,/d' src replace_rs '/[a-zA-Z]+: Send,/d' src replace_rs 's/: Send + Sync {/ {/' src replace_rs "s/type Stream<'a>: Stream/type Stream<'a>: Iterator/" src replace_rs 's/: Send {/ {/' src replace_rs 's/>: Send$/>/' src replace_rs 's/: Sync {/ {/' src replace_rs 's/Send + Sync + //' src replace_rs 's/ + Sync//' src replace_rs 's/ + Send//' src replace_rs 's/Send + //' src replace_rs 's/Arc/Arc/' src replace_rs '/T: Send,/d' src replace_rs '/R::Model: Send,/d' src replace_rs '/S::Item: Send,/d' src replace_rs 's/Box::pin/Box::new/' src replace_rs 's/impl Stream