mirror of
https://github.com/0glabs/0g-storage-node.git
synced 2024-11-10 10:05:17 +00:00
66 lines
1.8 KiB
Bash
Executable File
66 lines
1.8 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
default_path="../0g-storage-contracts"
|
|
path="${1:-$default_path}"
|
|
|
|
# Step 1: Check if the path is a valid Git directory with commits
|
|
if [ ! -d "$path/.git" ] || [ -z "$(git -C "$path" rev-parse HEAD 2> /dev/null)" ]; then
|
|
echo "Error: The specified path is not a valid Git repository with commits."
|
|
exit 1
|
|
fi
|
|
if [ ! -z "$(git -C "$path" status --porcelain)" ]; then
|
|
echo "Error: There are uncommitted changes in the contract repository."
|
|
exit 1
|
|
fi
|
|
|
|
# Step 2: Build the contracts
|
|
build_contracts() {
|
|
local target_path="$path"
|
|
local original_path=$(pwd) # Save the current directory
|
|
|
|
if cd "$target_path"; then
|
|
yarn
|
|
yarn build
|
|
cd "$original_path"
|
|
else
|
|
echo "Error: Failed to switch to directory $target_path."
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
build_contracts
|
|
|
|
# Step 3: Copy the file from a specified sub-path
|
|
copy_file() {
|
|
local source_path="$1"
|
|
local destination_path="$2"
|
|
|
|
# Check if the source file exists
|
|
if [ ! -f "$source_path" ]; then
|
|
echo "Error: The file $source_path does not exist."
|
|
exit 1
|
|
fi
|
|
|
|
# Copy the file to the destination
|
|
cp "$source_path" "$destination_path"
|
|
echo "File copied: $source_path -> $destination_path."
|
|
}
|
|
|
|
copy_abis() {
|
|
for contract_name in "$@"; do
|
|
copy_file $(./scripts/search_abi.sh "$path/artifacts" "$contract_name.json") "storage-contracts-abis/$contract_name.json"
|
|
done
|
|
}
|
|
|
|
copy_abis DummyMarket DummyReward Flow PoraMine PoraMineTest FixedPrice ChunkLinearReward FixedPriceFlow
|
|
|
|
|
|
# Step 4: Get the current Git revision and write it to a specified file
|
|
git_revision=$(git -C "$path" rev-parse HEAD)
|
|
revision_file="storage-contracts-abis/0g-storage-contracts-rev"
|
|
echo "$git_revision" > "$revision_file"
|
|
|
|
echo "Write git rev $git_revision to $revision_file."
|