mirror of
https://github.com/pezkuwichain/pezkuwi-runtime-templates.git
synced 2026-04-22 02:07:55 +00:00
124 lines
3.4 KiB
Bash
Executable File
124 lines
3.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
ZOMBIENET_V=v1.3.106
|
|
POLKAHEZ_V=stable-2407-01
|
|
|
|
# Detect the operating system
|
|
case "$(uname -s)" in
|
|
Linux*) MACHINE=Linux;;
|
|
Darwin*) MACHINE=Mac;;
|
|
*) exit 1
|
|
esac
|
|
|
|
# Detect the architecture
|
|
ARCH=$(uname -m)
|
|
|
|
# Set the executable name based on the OS and architecture
|
|
if [ $MACHINE = "Linux" ]; then
|
|
if [ $ARCH = "x86_64" ]; then
|
|
ZOMBIENET_BIN=zombienet-linux-x64
|
|
elif [ $ARCH = "arm64" ] || [ $ARCH = "aarch64" ]; then
|
|
ZOMBIENET_BIN=zombienet-linux-arm64
|
|
else
|
|
echo "Unsupported Linux architecture: $ARCH"
|
|
exit 1
|
|
fi
|
|
elif [ $MACHINE = "Mac" ]; then
|
|
if [ $ARCH = "x86_64" ]; then
|
|
ZOMBIENET_BIN=zombienet-macos-x86
|
|
elif [ $ARCH = "arm64" ]; then
|
|
ZOMBIENET_BIN=zombienet-macos-arm64
|
|
else
|
|
echo "Unsupported macOS architecture: $ARCH"
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
echo "Using binary: $ZOMBIENET_BIN"
|
|
|
|
BIN_DIR=bin-$POLKAHEZ_V
|
|
|
|
build_pezkuwi() {
|
|
echo "cloning pezkuwi repository..."
|
|
CWD=$(pwd)
|
|
mkdir -p "$BIN_DIR"
|
|
pushd /tmp
|
|
git clone https://github.com/pezkuwichain/pezkuwi-sdk.git
|
|
pushd pezkuwi-sdk
|
|
git checkout release-pezkuwi-$POLKAHEZ_V
|
|
echo "building pezkuwi executable..."
|
|
cargo build --release --features fast-runtime
|
|
cp target/release/pezkuwi "$CWD/$BIN_DIR"
|
|
cp target/release/pezkuwi-execute-worker "$CWD/$BIN_DIR"
|
|
cp target/release/pezkuwi-prepare-worker "$CWD/$BIN_DIR"
|
|
popd
|
|
popd
|
|
}
|
|
|
|
fetch_pezkuwi() {
|
|
echo "fetching from pezkuwi repository..."
|
|
echo $BIN_DIR
|
|
mkdir -p "$BIN_DIR"
|
|
pushd "$BIN_DIR"
|
|
wget https://github.com/pezkuwichain/pezkuwi-sdk/releases/download/pezkuwi-$POLKAHEZ_V/pezkuwi
|
|
wget https://github.com/pezkuwichain/pezkuwi-sdk/releases/download/pezkuwi-$POLKAHEZ_V/pezkuwi-execute-worker
|
|
wget https://github.com/pezkuwichain/pezkuwi-sdk/releases/download/pezkuwi-$POLKAHEZ_V/pezkuwi-prepare-worker
|
|
chmod +x *
|
|
popd
|
|
}
|
|
|
|
zombienet_init() {
|
|
if [ ! -f $ZOMBIENET_BIN ]; then
|
|
echo "fetching zombienet executable..."
|
|
curl -LO https://github.com/pezkuwichain/zombienet/releases/download/$ZOMBIENET_V/$ZOMBIENET_BIN
|
|
chmod +x $ZOMBIENET_BIN
|
|
fi
|
|
if [ ! -f $BIN_DIR/pezkuwi ]; then
|
|
fetch_pezkuwi
|
|
fi
|
|
}
|
|
|
|
zombienet_build() {
|
|
if [ ! -f $ZOMBIENET_BIN ]; then
|
|
echo "fetching zombienet executable..."
|
|
curl -LO https://github.com/pezkuwichain/zombienet/releases/download/$ZOMBIENET_V/$ZOMBIENET_BIN
|
|
chmod +x $ZOMBIENET_BIN
|
|
fi
|
|
if [ ! -f $BIN_DIR/pezkuwi ]; then
|
|
build_pezkuwi
|
|
fi
|
|
}
|
|
|
|
zombienet_devnet() {
|
|
zombienet_init
|
|
cargo build --release
|
|
echo "spawning paseo-local relay chain plus devnet as a teyrchain..."
|
|
local dir=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
|
|
./$ZOMBIENET_BIN spawn "$dir/../zombienet-config/devnet.toml" -p native
|
|
}
|
|
|
|
|
|
print_help() {
|
|
echo "This is a shell script to automate the execution of zombienet."
|
|
echo ""
|
|
echo "$ ./zombienet.sh init # fetches zombienet and pezkuwi executables"
|
|
echo "$ ./zombienet.sh build # builds pezkuwi executables from source"
|
|
echo "$ ./zombienet.sh devnet # spawns a paseo-local relay chain plus teyrchain devnet-local as a teyrchain"
|
|
}
|
|
|
|
SUBCOMMAND=$1
|
|
case $SUBCOMMAND in
|
|
"" | "-h" | "--help")
|
|
print_help
|
|
;;
|
|
*)
|
|
shift
|
|
zombienet_${SUBCOMMAND} $@
|
|
if [ $? = 127 ]; then
|
|
echo "Error: '$SUBCOMMAND' is not a known SUBCOMMAND." >&2
|
|
echo "Run './zombienet.sh --help' for a list of known subcommands." >&2
|
|
exit 1
|
|
fi
|
|
;;
|
|
esac
|