Qortal Core - Main Code Repository Decentralized Data Network - Blockchain - TRUE Cross-Chain Trading - Application and Website Hosting - Much More - Qortal is the future internet infrastructure for the global digital world. https://qortal.dev
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

133 lines
3.1 KiB

#!/usr/bin/env bash
# Change this to where AdvancedInstaller outputs built EXE installers
SCRIPT_DIR=$(dirname $(realpath "$0"))
WINDOWS_INSTALLER_DIR="${SCRIPT_DIR}/../WindowsInstaller/Qortal-SetupFiles"
set -e
shopt -s expand_aliases
# optional git tag?
if [ $# -ge 1 ]; then
git_tag="$1"
shift
fi
saved_pwd=$PWD
alias SHA256='(sha256 -q || sha256sum | cut -d" " -f1) 2>/dev/null'
function 3hash {
local zip_src=$1
local md5hash=$(md5 ${zip_src} | awk '{ print $NF }')
local sha1hash=$(shasum ${zip_src} | awk '{ print $1 }')
local sha256hash=$(sha256sum ${zip_src} | awk '{ print $1 }')
echo "\`MD5: ${md5hash}\`"
echo "\`SHA1: ${sha1hash}\`"
echo "\`SHA256: ${sha256hash}\`"
}
# Check we are within a git repo
git_dir=$( git rev-parse --show-toplevel )
if [ -z "${git_dir}" ]; then
echo "Cannot determine top-level directory for git repo"
exit 1
fi
# Change to git top-level
cd ${git_dir}
# Check we are in 'master' branch
# branch_name=$( git symbolic-ref -q HEAD ) || echo "Cannot determine branch name" && exit 1
# branch_name=${branch_name##refs/heads/}
# if [ "${branch_name}" != "master" ]; then
# echo "Unexpected current branch '${branch_name}' - expecting 'master'"
# exit 1
# fi
# Determine project name
project=$( perl -n -e 'if (m/<artifactId>(\w+)<.artifactId>/) { print $1; exit }' pom.xml $)
if [ -z "${project}" ]; then
echo "Unable to determine project name from pom.xml?"
exit 1
fi
# Extract git tag
if [ -z "${git_tag}" ]; then
git_tag=$( git tag --points-at HEAD )
if [ -z "${git_tag}" ]; then
echo "Unable to extract git tag"
exit 1
fi
fi
# Find origin URL
git_url=$( git remote get-url origin )
git_url=https://github.com/${git_url##*:}
git_url=${git_url%%.git}
# Check for EXE
exe=${project}.exe
exe_src="${WINDOWS_INSTALLER_DIR}/${exe}"
if [ ! -r "${exe_src}" ]; then
echo "Cannot find EXE installer at ${exe_src}"
exit
fi
# Check for ZIP
zip_filename=${project}.zip
zip_src=${saved_pwd}/${zip_filename}
if [ ! -r "${zip_src}" ]; then
echo "Cannot find ZIP at ${zip_src}"
exit
fi
# Changes
cat <<"__CHANGES__"
*Changes in this release:*
*
__CHANGES__
# JAR
cat <<__JAR__
### [${project}.jar](${git_url}/releases/download/${git_tag}/${project}.jar)
If built using OpenJDK 11:
__JAR__
3hash target/${project}*.jar
# EXE
cat <<__EXE__
### [${exe}](${git_url}/releases/download/${git_tag}/${exe})
__EXE__
3hash "${exe_src}"
# VirusTotal url is SHA256 of github download url:
virustotal_url=$( echo -n "${git_url}/releases/download/${git_tag}/${exe}" | SHA256 )
cat <<__VIRUSTOTAL__
[VirusTotal report for ${exe}](https://www.virustotal.com/gui/url/${virustotal_url}/detection)
__VIRUSTOTAL__
# ZIP
cat <<__ZIP__
### [${zip_filename}](${git_url}/releases/download/${git_tag}/${zip_filename})
Contains bare minimum of:
* built \`${project}.jar\`
* \`log4j2.properties\` from git repo
* \`start.sh\` from git repo
* \`stop.sh\` from git repo
* \`printf "{\n}\n" > settings.json\`
All timestamps set to same date-time as commit, obtained via \`git show --no-patch --format=%cI\`
Packed with \`7z a -r -tzip ${zip_filename} ${project}/\`
__ZIP__
3hash ${zip_src}