2023-12-06 23:39:22 +00:00
|
|
|
#! /usr/bin/env bash
|
|
|
|
|
|
|
|
# IMPORTANT
|
|
|
|
# This script should NOT be run directly.
|
2024-01-08 15:30:37 +00:00
|
|
|
# Run `make cli` or `make cli-local` from the root of the repository instead.
|
2023-12-06 23:39:22 +00:00
|
|
|
|
|
|
|
set -e
|
|
|
|
|
|
|
|
# A function to generate formatted .md files
|
|
|
|
write_to_file() {
|
|
|
|
local cmd="$1"
|
|
|
|
local file="$2"
|
|
|
|
local program="$3"
|
|
|
|
|
|
|
|
# Remove first line of cmd to get rid of commit specific numbers.
|
|
|
|
cmd=${cmd#*$'\n'}
|
|
|
|
|
|
|
|
# We need to add the header and the backticks to create the code block.
|
|
|
|
printf "# %s\n\n\`\`\`\n%s\n\`\`\`" "$program" "$cmd" > "$file"
|
2024-03-23 20:52:09 +00:00
|
|
|
|
|
|
|
# Adjust the width of the help text and append to the end of file
|
|
|
|
sed -i -e '$a\'$'\n''<style> .content main {max-width:88%;} </style>' "$file"
|
2023-12-06 23:39:22 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
CMD=./target/release/lighthouse
|
|
|
|
|
|
|
|
# Store all help strings in variables.
|
|
|
|
general_cli=$($CMD --help)
|
|
|
|
bn_cli=$($CMD bn --help)
|
|
|
|
vc_cli=$($CMD vc --help)
|
|
|
|
vm_cli=$($CMD vm --help)
|
|
|
|
vm_cli_create=$($CMD vm create --help)
|
|
|
|
vm_cli_import=$($CMD vm import --help)
|
|
|
|
vm_cli_move=$($CMD vm move --help)
|
|
|
|
|
|
|
|
general=./help_general.md
|
|
|
|
bn=./help_bn.md
|
|
|
|
vc=./help_vc.md
|
|
|
|
am=./help_am.md
|
|
|
|
vm=./help_vm.md
|
|
|
|
vm_create=./help_vm_create.md
|
|
|
|
vm_import=./help_vm_import.md
|
|
|
|
vm_move=./help_vm_move.md
|
|
|
|
|
|
|
|
# create .md files
|
|
|
|
write_to_file "$general_cli" "$general" "Lighthouse General Commands"
|
|
|
|
write_to_file "$bn_cli" "$bn" "Beacon Node"
|
|
|
|
write_to_file "$vc_cli" "$vc" "Validator Client"
|
|
|
|
write_to_file "$vm_cli" "$vm" "Validator Manager"
|
|
|
|
write_to_file "$vm_cli_create" "$vm_create" "Validator Manager Create"
|
|
|
|
write_to_file "$vm_cli_import" "$vm_import" "Validator Manager Import"
|
|
|
|
write_to_file "$vm_cli_move" "$vm_move" "Validator Manager Move"
|
|
|
|
|
|
|
|
#input 1 = $1 = files; input 2 = $2 = new files
|
|
|
|
files=(./book/src/help_general.md ./book/src/help_bn.md ./book/src/help_vc.md ./book/src/help_vm.md ./book/src/help_vm_create.md ./book/src/help_vm_import.md ./book/src/help_vm_move.md)
|
|
|
|
new_files=($general $bn $vc $vm $vm_create $vm_import $vm_move)
|
|
|
|
|
|
|
|
# function to check
|
|
|
|
check() {
|
|
|
|
local file="$1"
|
|
|
|
local new_file="$2"
|
|
|
|
|
|
|
|
if [[ -f $file ]]; then # check for existence of file
|
|
|
|
diff=$(diff $file $new_file || :)
|
|
|
|
else
|
|
|
|
cp $new_file $file
|
|
|
|
changes=true
|
|
|
|
echo "$file is not found, it has just been created"
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [[ -z $diff ]]; then # check for difference
|
|
|
|
: # do nothing
|
|
|
|
else
|
|
|
|
cp $new_file $file
|
|
|
|
changes=true
|
|
|
|
echo "$file has been updated"
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
|
|
|
# define changes as false
|
|
|
|
changes=false
|
|
|
|
# call check function to check for each help file
|
|
|
|
check ${files[0]} ${new_files[0]}
|
|
|
|
check ${files[1]} ${new_files[1]}
|
|
|
|
check ${files[2]} ${new_files[2]}
|
|
|
|
check ${files[3]} ${new_files[3]}
|
|
|
|
check ${files[4]} ${new_files[4]}
|
|
|
|
check ${files[5]} ${new_files[5]}
|
|
|
|
check ${files[6]} ${new_files[6]}
|
|
|
|
|
|
|
|
# remove help files
|
|
|
|
rm -f help_general.md help_bn.md help_vc.md help_am.md help_vm.md help_vm_create.md help_vm_import.md help_vm_move.md
|
|
|
|
|
|
|
|
# only exit at the very end
|
|
|
|
if [[ $changes == true ]]; then
|
2024-01-25 03:57:48 +00:00
|
|
|
echo "Exiting with error to indicate changes occurred. To fix, run 'make cli-local' or 'make cli' and commit the changes."
|
2023-12-06 23:39:22 +00:00
|
|
|
exit 1
|
|
|
|
else
|
|
|
|
echo "CLI help texts are up to date."
|
|
|
|
exit 0
|
|
|
|
fi
|