mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-05-30 05:51:02 +00:00
60e5011c72
* Adding first rough ouline of the repository structure * Remove old CI stuff * add title * formatting fixes * move node-exits job's script to scripts dir * Move docs into subdir * move to bin * move maintainence scripts, configs and helpers into its own dir * add .local to ignore * move core->client * start up 'test' area * move test client * move test runtime * make test move compile * Add dependencies rule enforcement. * Fix indexing. * Update docs to reflect latest changes * Moving /srml->/paint * update docs * move client/sr-* -> primitives/ * clean old readme * remove old broken code in rhd * update lock * Step 1. * starting to untangle client * Fix after merge. * start splitting out client interfaces * move children and blockchain interfaces * Move trie and state-machine to primitives. * Fix WASM builds. * fixing broken imports * more interface moves * move backend and light to interfaces * move CallExecutor * move cli off client * moving around more interfaces * re-add consensus crates into the mix * fix subkey path * relieve client from executor * starting to pull out client from grandpa * move is_decendent_of out of client * grandpa still depends on client directly * lemme tests pass * rename srml->paint * Make it compile. * rename interfaces->client-api * Move keyring to primitives. * fixup libp2p dep * fix broken use * allow dependency enforcement to fail * move fork-tree * Moving wasm-builder * make env * move build-script-utils * fixup broken crate depdencies and names * fix imports for authority discovery * fix typo * update cargo.lock * fixing imports * Fix paths and add missing crates * re-add missing crates
62 lines
1.2 KiB
Bash
Executable File
62 lines
1.2 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# The script is meant to check if the rules regarding packages
|
|
# dependencies are satisfied.
|
|
# The general format is:
|
|
# [top-lvl-dir]<[crate-name-prefix]
|
|
|
|
# For instance no crate within `./client` directory
|
|
# is allowed to import any crate with a directory path containing `paint`.
|
|
# Such rule is just: `client<paint`.
|
|
|
|
# The script should be run from the main repo directory!
|
|
|
|
set -u
|
|
|
|
PLEASE_DONT=(
|
|
"client<paint"
|
|
"client<node"
|
|
"paint<node"
|
|
"paint<client"
|
|
"primitives<paint"
|
|
"primitives<client"
|
|
)
|
|
|
|
VIOLATIONS=()
|
|
PACKAGES=()
|
|
|
|
for rule in "${PLEASE_DONT[@]}"
|
|
do
|
|
from=$(echo $rule | cut -f1 -d\<)
|
|
to=$(echo $rule | cut -f2 -d\<)
|
|
|
|
cd $from
|
|
echo "Checking rule $rule"
|
|
packages=$(find -name Cargo.toml | xargs grep -wn "path.*$to")
|
|
has_references=$(echo -n $packages | wc -c)
|
|
if [ "$has_references" != "0" ]; then
|
|
VIOLATIONS+=("$rule")
|
|
# Find packages that violate:
|
|
PACKAGES+=("$packages")
|
|
fi
|
|
cd - > /dev/null
|
|
done
|
|
|
|
# Display violations and fail
|
|
I=0
|
|
for v in "${VIOLATIONS[@]}"
|
|
do
|
|
cat << EOF
|
|
|
|
===========================================
|
|
======= Violation of rule: $v
|
|
===========================================
|
|
${PACKAGES[$I]}
|
|
|
|
|
|
EOF
|
|
I=$I+1
|
|
done
|
|
|
|
exit ${#VIOLATIONS[@]}
|