diff --git a/tag.sh b/tag.sh new file mode 100644 index 0000000..9d43267 --- /dev/null +++ b/tag.sh @@ -0,0 +1,100 @@ +#!/bin/bash + +# tag.sh - script to automate the checkpointing and packaging process +# Copyright (C) 2020 wowario +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +# install jq (brew install jq | apt-get install jq) +# for mac, intall gnu sed with: brew install gnu-sed +# and echo 'export PATH="/usr/local/opt/gnu-sed/libexec/gnubin:$PATH"' >> ~/.bashrc +# run wownerod --detach and sync up before running script + +# set parameter as version +version=$1 + +# error out if version not set +if [ $# -eq 0 ]; then + echo "include version as a parameter (./tag.sh 0.8.0.2)" + exit 1 +fi + +# OS check +if [[ "$OSTYPE" == "linux-gnu"* ]]; then + wowdir=/home/ubuntu/wownero + platform=Linux_v + usrdir=/home/ubuntu + wowdir=/home/ubuntu/wownero + release=release-static-linux-x86_64 +elif [[ "$OSTYPE" == "darwin"* ]]; then + platform=macOS_v + usrdir=/Users/administrator + wowdir=/Users/administrator/gits/wownero + release=release-static-mac-x86_64 +else + echo "Unknown OS" +fi + +# echo version to tag +echo "Building tagged version: wownero_$platform$version" + +# logging +exec > >(tee -i $usrdir/logs/tag.log) +exec 2>&1 + +# update repo +echo "Updating repo" +cd $wowdir +rm -rf build +git checkout . +git fetch --all +git pull + +# checkpoint +cd $usrdir/utilities/ +./wownerod status +echo "Checkpointing" +height=$(curl -s http://127.0.0.1:34568/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"get_info"}' -H 'Content-Type: application/json' | jq -r '.result.height') +echo "Starting height: $height" +declare -i value +value=$height-60 +echo "Roll back 60 blocks. New height: $value" +sha1=$(sha256sum $wowdir/src/blocks/checkpoints.dat | awk '{print $1}') +echo "Old SHA-256: $sha1" +rm -rf $wowdir/src/blocks/checkpoints.dat +./wownero-blockchain-export --blocksdat --block-stop $value --output-file $wowdir/src/blocks/checkpoints.dat & +sleep 20s +sha2=$(sha256sum $wowdir/src/blocks/checkpoints.dat | awk '{print $1}') +echo "New SHA-256: $sha2" +cd $wowdir/src/cryptonote_core/ +sed -i "s/$sha1/$sha2/g" blockchain.cpp +cd $wowdir +git status +git diff + +# build Wownero +echo "Building Wownero" +USE_SINGLE_BUILDDIR=1 make -j3 $release > /dev/null 2>&1 + +# archive binaries +echo "taring the binaries" +cd $wowdir/build/release/bin +tar -cvjSf wownero_$platform$version.tar.bz2 * +sha256sum $wowdir/build/release/bin/wownero_$platform$version.tar.bz2 + +# copy archive file to release folder +echo -e "\e[42mmoving tar file to release folder" +mv $wowdir/build/release/bin/wownero_$platform$version.tar.bz2 $usrdir/release/wownero_$platform$version.tar.bz2 +sha256sum $usrdir/release/wownero_$platform$version.tar.bz2 +echo "done!"