ci/lint/rust.sh
#!/usr/bin/env bash

set -e

echo '###############################################################################'
echo 'Checking db-backend'
echo '###############################################################################'

echo "## Checking if dap_types are consistent with autogenerated source"

cp src/db-backend/src/dap_types.rs committed_dap_types.rs
node schema/schema.js > /dev/null # producing new dap_types.rs in src/db-backend/src
# if not equal, will exit with 1 (or != 0), and then we show an error message
#   we add ` && false` to again make the exit code of the command 1, 
#   so with `set -e` we want to fail the buld this way
diff src/db-backend/src/dap_types.rs committed_dap_types.rs  || (echo "committed dap_types.rs different from auto-generated version!" && false)

echo "## OK for autogeneration of dap_types.rs"

echo "## checking the build of db-backend parts"

pushd src/db-backend

# threat warnings as errors here!
env RUSTFLAGS="-D warnings" cargo check --release --bin db-backend
env RUSTFLAGS="-D warnings" cargo check --release --bin virtualization-layers
env RUSTFLAGS="-D warnings" cargo check --release --bin schema-generator

# TODO: check how to fix it in CI : cargo clippy -- -D warnings

popd

echo '###############################################################################'
echo 'Checking backend-manager'
echo '###############################################################################'

pushd src/backend-manager

# threat warnings as errors here!
env RUSTFLAGS="-D warnings" cargo check --release

cargo clippy -- -D warnings

popd



echo '###############################################################################'
echo 'Checking small-lang'
echo '###############################################################################'

pushd src/small-lang

# threat warnings as errors here!
env RUSTFLAGS="-D warnings" cargo check --release

# TODO: check how to fix it in CI : cargo clippy -- -D warnings

popd

###############################################################################

pushd src/tui

cargo build

popd

#############################

