mirror of
https://github.com/Cyrix126/gupaxx.git
synced 2024-12-22 22:59:27 +00:00
141 lines
6.5 KiB
Bash
Executable file
141 lines
6.5 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
START_TIME=$EPOCHSECONDS
|
|
|
|
title() { printf "\n\e[1;93m%s\e[0m\n" "============================ $1 ============================"; }
|
|
check() {
|
|
local CODE=$?
|
|
if [[ $CODE = 0 ]]; then
|
|
printf "${BASH_LINENO} | %s ... \e[1;92mOK\e[0m\n" "$1"
|
|
else
|
|
printf "${BASH_LINENO} | %s ... \e[1;91mFAIL\e[0m\n" "$1"
|
|
exit $CODE
|
|
fi
|
|
}
|
|
int() {
|
|
exit 1
|
|
}
|
|
|
|
trap 'int' INT
|
|
|
|
title "Basic checks"
|
|
# Check for needed files
|
|
[[ -d skel ]]; check "skel"
|
|
[[ -f skel/CHANGELOG.md ]]; check "skel/CHANGELOG.md"
|
|
[[ $1 = v* ]]; check "\$1 ... $1"
|
|
NEW_VER="$1"
|
|
cd skel; check "CD into skel"
|
|
|
|
# Check that [skel] directory contains everything
|
|
# and that the naming schemes are correct
|
|
title "Linux folder check"
|
|
[[ -f linux/gupaxx ]]; check "linux/gupaxx"
|
|
[[ -f linux_b/gupaxx ]]; check "linux_b/gupaxx"
|
|
[[ -f linux_b/p2pool/p2pool ]]; check "linux_b/p2pool/p2pool"
|
|
[[ -f linux_b/xmrig/xmrig ]]; check "linux_b/xmrig/xmrig"
|
|
[[ -f linux_b/xmrig-proxy/xmrig-proxy ]]; check "linux_b/xmrig-proxy/xmrig-proxy"
|
|
[[ -f linux_b/node/monerod ]]; check "linux_b/node/monerod"
|
|
title "macOS-x64 folder check"
|
|
[[ -d macos-x64/Gupaxx.app ]]; check "macos-x64/Gupaxx.app"
|
|
[[ -d macos-x64_b/Gupaxx.app ]]; check "macos-x64_b/Gupaxx.app"
|
|
[[ -f macos-x64_b/Gupaxx.app/Contents/MacOS/p2pool/p2pool ]]; check "macos-x64_b/p2pool/p2pool"
|
|
[[ -f macos-x64_b/Gupaxx.app/Contents/MacOS/xmrig/xmrig ]]; check "macos-x64_b/xmrig/xmrig"
|
|
[[ -f macos-x64_b/Gupaxx.app/Contents/MacOS/xmrig-proxy/xmrig-proxy ]]; check "macos-x64_b/xmrig-proxy/xmrig-proxy"
|
|
[[ -f macos-x64_b/Gupaxx.app/Contents/MacOS/node/monerod ]]; check "macos-x64_b/node/monerod"
|
|
title "macOS-arm64 folder check"
|
|
[[ -d macos-arm64/Gupaxx.app ]]; check "macos-arm64/Gupaxx.app"
|
|
[[ -d macos-arm64_b/Gupaxx.app ]]; check "macos-arm64_b/Gupaxx.app"
|
|
[[ -f macos-arm64_b/Gupaxx.app/Contents/MacOS/p2pool/p2pool ]]; check "macos-arm64_b/p2pool/p2pool"
|
|
[[ -f macos-arm64_b/Gupaxx.app/Contents/MacOS/xmrig/xmrig ]]; check "macos-arm64_b/xmrig/xmrig"
|
|
## no macos-arm64 xmrig-proxy released todo
|
|
# [[ -f macos-arm64_b/Gupaxx.app/Contents/MacOS/xmrig-proxy/xmrig-proxy ]]; check "macos-arm64_b/xmrig-proxy/xmrig-proxy"
|
|
[[ -f macos-arm64_b/Gupaxx.app/Contents/MacOS/node/monerod ]]; check "macos-arm64_b/node/monerod"
|
|
title "Windows folder check"
|
|
[[ -f windows/Gupaxx.exe ]]; check "windows/Gupaxx.exe"
|
|
[[ -f windows_b/Gupaxx.exe ]]; check "windows_b/Gupaxx.exe"
|
|
[[ -f windows_b/P2Pool/p2pool.exe ]]; check "windows_b/P2Pool/p2pool.exe"
|
|
[[ -f windows_b/XMRig/xmrig.exe ]]; check "windows_b/XMRig/xmrig.exe"
|
|
[[ -f windows_b/XMRig-Proxy/xmrig-proxy.exe ]]; check "windows_b/XMRig-Proxy/xmrig-proxy.exe"
|
|
[[ -f windows_b/Node/monerod.exe ]]; check "windows_b/Node/monerod.exe"
|
|
|
|
# Get random date for tar/zip
|
|
title "RNG Date"
|
|
RNG=$((EPOCHSECONDS-RANDOM*4)); check "RNG ... $RNG"
|
|
DATE=$(date -d @${RNG}); check "DATE ... $DATE"
|
|
|
|
# Tar Linux Bundle
|
|
title "Tar Linux"
|
|
# give execution permission
|
|
chmod +x linux/gupaxx
|
|
chmod +x linux_b/gupaxx
|
|
chmod +x linux_b/p2pool/p2pool
|
|
chmod +x linux_b/xmrig/xmrig
|
|
chmod +x linux_b/xmrig-proxy/xmrig-proxy
|
|
chmod +x linux_b/node/monerod
|
|
mv linux_b "gupaxx-$NEW_VER-linux-x64-bundle"; check "linux -> gupaxx-$NEW_VER-linux-x64-bundle"
|
|
tar -czpf "gupaxx-${NEW_VER}-linux-x64-bundle.tar.gz" "gupaxx-$NEW_VER-linux-x64-bundle" --owner=lm --group=lm ; check "tar linux-bundle"
|
|
# Tar Linux Standalone
|
|
mv linux "gupaxx-$NEW_VER-linux-x64-standalone"
|
|
tar -czpf "gupaxx-${NEW_VER}-linux-x64-standalone.tar.gz" "gupaxx-$NEW_VER-linux-x64-standalone" --owner=lm --group=lm ; check "tar linux-standalone"
|
|
# Remove dir
|
|
rm -r "gupaxx-$NEW_VER-linux-x64-standalone"; check "rm linux dir"
|
|
rm -r "gupaxx-$NEW_VER-linux-x64-bundle"; check "rm linux_b dir"
|
|
|
|
# x64
|
|
# Tar macOS Bundle
|
|
title "Tar macOS-x64"
|
|
mv macos-x64_b "gupaxx-$NEW_VER-macos-x64-bundle"; check "macos-x64_b -> gupaxx-$NEW_VER-macos-x64-bundle"
|
|
tar -czpf "gupaxx-${NEW_VER}-macos-x64-bundle.tar.gz" "gupaxx-$NEW_VER-macos-x64-bundle" --owner=lm --group=lm ; check "tar macos-bundle"
|
|
# Tar macOS Standalone
|
|
mv macos-x64 "gupaxx-$NEW_VER-macos-x64-standalone"; check "macos-x64 -> gupaxx-$NEW_VER-macos-x64-standalone"
|
|
tar -czpf "gupaxx-${NEW_VER}-macos-x64-standalone.tar.gz" "gupaxx-$NEW_VER-macos-x64-standalone" --owner=lm --group=lm ; check "tar macos-x64-standalone"
|
|
# Remove dir
|
|
rm -r "gupaxx-$NEW_VER-macos-x64-standalone"; check "rm macos-x64 dir"
|
|
rm -r "gupaxx-$NEW_VER-macos-x64-bundle"; check "rm macos-x64_b dir"
|
|
|
|
# ARM
|
|
# Tar macOS Bundle
|
|
title "Tar macOS-arm64"
|
|
mv macos-arm64_b "gupaxx-$NEW_VER-macos-arm64-bundle"; check "macos-arm64_b -> gupaxx-$NEW_VER-macos-arm64-bundle"
|
|
tar -czpf "gupaxx-${NEW_VER}-macos-arm64-bundle.tar.gz" "gupaxx-$NEW_VER-macos-arm64-bundle" --owner=lm --group=lm ; check "tar macos-bundle"
|
|
# Tar macOS Standalone
|
|
mv macos-arm64 "gupaxx-$NEW_VER-macos-arm64-standalone"; check "macos-arm64 -> gupaxx-$NEW_VER-macos-arm64-standalone"
|
|
tar -czpf "gupaxx-${NEW_VER}-macos-arm64-standalone.tar.gz" "gupaxx-$NEW_VER-macos-arm64-standalone" --owner=lm --group=lm ; check "tar macos-arm64-standalone"
|
|
# Remove dir
|
|
rm -r "gupaxx-$NEW_VER-macos-arm64-standalone"; check "rm macos-arm64 dir"
|
|
rm -r "gupaxx-$NEW_VER-macos-arm64-bundle"; check "rm macos-arm64_b dir"
|
|
|
|
# Zip Windows Bundle
|
|
title "Zip Windows"
|
|
mv windows_b "gupaxx-$NEW_VER-windows-x64-bundle"; check "windows_b -> gupaxx-$NEW_VER-windows-x64-bundle"
|
|
zip -qr "gupaxx-${NEW_VER}-windows-x64-bundle.zip" "gupaxx-$NEW_VER-windows-x64-bundle"; check "zip windows-bundle"
|
|
# Zip Windows Standalone
|
|
mv windows "gupaxx-$NEW_VER-windows-x64-standalone"; check "windows -> gupaxx-$NEW_VER-windows-x64-standalone"
|
|
zip -qr "gupaxx-${NEW_VER}-windows-x64-standalone.zip" "gupaxx-$NEW_VER-windows-x64-standalone"; check "zip windows-standalone"
|
|
# Remove dir
|
|
rm -r "gupaxx-$NEW_VER-windows-x64-standalone"; check "rm windows dir"
|
|
rm -r "gupaxx-$NEW_VER-windows-x64-bundle"; check "rm windows_b dir"
|
|
|
|
# SHA256SUMS + Sign
|
|
title "Hash + Sign"
|
|
SHA256SUMS=$(sha256sum gupaxx* | gpg --clearsign --local-user 8EFFE4A8C0FD4B6D21C3AAB2EC6E5BB401C6362D); check "Hash + Sign"
|
|
echo "${SHA256SUMS}" > SHA256SUMS; check "Create SHA256SUMS file"
|
|
sha256sum -c SHA256SUMS; check "Verify SHA"
|
|
gpg --verify SHA256SUMS; check "Verify GPG"
|
|
|
|
# Get changelog + SHA256SUMS into clipboard
|
|
title "Clipboard"
|
|
clipboard() {
|
|
grep -B999 -m1 "^$" CHANGELOG.md
|
|
echo "## SHA256SUM & [PGP Signature](https://github.com/cyrix126/gupaxx/blob/main/pgp/cyrix126.asc)"
|
|
echo '```'
|
|
cat SHA256SUMS
|
|
echo '```'
|
|
}
|
|
CHANGELOG=$(clipboard); check "Create changelog + sign"
|
|
echo "$CHANGELOG" | wl-copy $clipboard
|
|
check "Changelog into clipboard"
|
|
|
|
# Reset timezone
|
|
title "End"
|
|
printf "\n%s\n" "package.sh ... Took [$((EPOCHSECONDS-START_TIME))] seconds ... OK!"
|