forked from Qortal/qortal
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
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}
|
|
|