* Go for Broke * Let it fire * Add PipLine * Create the dir if it doesn't exist * Install Setuptools * Track Test Action's files * Fix Calling Job * Track Build Action files * Install Distutils, rename filenames * Fix Fail conditions * Make Build scripts smarter * Add file * Concat DLLs lists * Try to fail if Error DLLs * Try to make the fail smarter * Moar verbosity * Print the stuff first * Print outputs objects * See if this skips failure * Use py instead * Print error list * Don't ValueError * Try checking a different way * Try something else * Bleh, spell filename correctly * Update excluded_dlls.json * Ugh, gotta compare old to new somehow * Compare to old list * Condense build script * Moar verbosity * Update the global version * Update Excluded DLLs list * Actually use the bad DLLs list * Make a version number * Fix version number building * Fix version number building again * Fix Diagnostics * Try REST API stuff * Try REST API again * Moar REST * await * Get SHA * Try it all together * Del test workflow * Add Perms * Use a Token * Try this Token * Try different Token * Try different Token * Create App Version earlier * See this error again * Don't fail if App Version not made yet * Use New Secret * Print whole response * Documentation for Tagger * Update CI Instructions * Update CI * List References * Find latest tag Fix App Version getter * Fix commas * Check returned data * Update Build Script * Fix substring * Fix Git tag * Fix tag again * Visual indicators * Use encoding * Remove an indicator * Update CI * Update Project Name * PyInstaller Spec Template file * Update Build Script * Fix Tagger * Update CI * Download AppVersion during build * Test job can fail * Upload Logs instead of printing them * Change from Reusable Workflow to Action * Change ref to token * Compare to string * Use PAT * Use String literal * Remove Reusable Workflow * Update CI Scripts * Go for Broke * Let it fire * Add PipLine * Create the dir if it doesn't exist * Install Setuptools * Track Test Action's files * Fix Calling Job * Track Build Action files * Install Distutils, rename filenames * Fix Fail conditions * Make Build scripts smarter * Add file * Concat DLLs lists * Try to fail if Error DLLs * Try to make the fail smarter * Moar verbosity * Print the stuff first * Print outputs objects * See if this skips failure * Use py instead * Print error list * Don't ValueError * Try checking a different way * Try something else * Bleh, spell filename correctly * Update excluded_dlls.json * Ugh, gotta compare old to new somehow * Compare to old list * Condense build script * Moar verbosity * Update the global version * Update Excluded DLLs list * Actually use the bad DLLs list * Make a version number * Fix version number building * Fix version number building again * Fix Diagnostics * Try REST API stuff * Try REST API again * Moar REST * await * Get SHA * Try it all together * Del test workflow * Add Perms * Use a Token * Try this Token * Try different Token * Try different Token * Create App Version earlier * See this error again * Don't fail if App Version not made yet * Use New Secret * Print whole response * Documentation for Tagger * Update CI Instructions * Update CI * List References * Find latest tag Fix App Version getter * Fix commas * Check returned data * Update Build Script * Fix substring * Fix Git tag * Fix tag again * Visual indicators * Use encoding * Remove an indicator * Update CI * Update Project Name * PyInstaller Spec Template file * Update Build Script * Fix Tagger * Update CI * Download AppVersion during build * Test job can fail * Upload Logs instead of printing them * Change from Reusable Workflow to Action * Change ref to token * Compare to string * Use PAT * Use String literal * Remove Reusable Workflow * Update CI Scripts --------- Co-authored-by: Minnie A. Trethewey (Mike) <minnietrethewey@gmail.com>
46 lines
1.3 KiB
Python
46 lines
1.3 KiB
Python
import common
|
|
import os # for env vars
|
|
import sys # for path
|
|
import urllib.request # for downloads
|
|
from shutil import unpack_archive
|
|
|
|
# only do stuff if we don't have a UPX folder
|
|
|
|
if not os.path.isdir(os.path.join(".","upx")):
|
|
# get env vars
|
|
env = common.prepare_env()
|
|
# set up download url
|
|
UPX_VERSION = os.getenv("UPX_VERSION") or "3.96"
|
|
UPX_SLUG = ""
|
|
UPX_FILE = ""
|
|
if "windows" in env["OS_NAME"]:
|
|
UPX_SLUG = "upx-" + UPX_VERSION + "-win64"
|
|
UPX_FILE = UPX_SLUG + ".zip"
|
|
else:
|
|
UPX_SLUG = "upx-" + UPX_VERSION + "-amd64_linux"
|
|
UPX_FILE = UPX_SLUG + ".tar.xz"
|
|
UPX_URL = "https://github.com/upx/upx/releases/download/v" + UPX_VERSION + '/' + UPX_FILE
|
|
|
|
# if it's not macos
|
|
if "osx" not in env["OS_NAME"]:
|
|
print("Getting UPX: " + UPX_FILE)
|
|
|
|
# download UPX
|
|
with open(os.path.join(".",UPX_FILE),"wb") as upx:
|
|
UPX_REQ = urllib.request.Request(
|
|
UPX_URL,
|
|
data=None
|
|
)
|
|
UPX_REQ = urllib.request.urlopen(UPX_REQ)
|
|
UPX_DATA = UPX_REQ.read()
|
|
upx.write(UPX_DATA)
|
|
|
|
# extract UPX
|
|
unpack_archive(UPX_FILE,os.path.join("."))
|
|
|
|
# move UPX
|
|
os.rename(os.path.join(".",UPX_SLUG),os.path.join(".","upx"))
|
|
os.remove(os.path.join(".",UPX_FILE))
|
|
|
|
print("UPX should " + ("not " if not os.path.isdir(os.path.join(".","upx")) else "") + "be available.")
|