Updates to scanner with CVE saving and auto update
This commit is contained in:
+49
-8
@@ -70,7 +70,7 @@ fi
|
||||
# Generate a proper macOS installer icon.
|
||||
INSTALLER_PNG="$ROOT/PHPGuard/Assets.xcassets/InstallerIcon.imageset/icon.png"
|
||||
ICONSET="$ROOT/dist/PHPGuardInstaller.iconset"
|
||||
INSTALLER_ICNS="$ROOT/dist/PHPGuardInstaller.icns"
|
||||
INSTALLER_ICNS="${TMPDIR:-/tmp}/PHPGuardInstaller-$$.icns"
|
||||
|
||||
if [[ -f "$INSTALLER_PNG" ]]; then
|
||||
rm -rf "$ICONSET"
|
||||
@@ -94,14 +94,55 @@ fi
|
||||
hdiutil create -volname "PHPGuard $VERSION" -srcfolder "$STAGING" -ov -format UDZO "$DMG"
|
||||
|
||||
# Apply custom Finder icon to the DMG.
|
||||
if command -v fileicon >/dev/null 2>&1; then
|
||||
fileicon set "$DMG" "$INSTALLER_ICNS"
|
||||
else
|
||||
echo "WARNING: fileicon is not installed."
|
||||
echo "Install with: brew install fileicon"
|
||||
echo "DMG created without a custom Finder icon."
|
||||
fi
|
||||
# Apply the DMG Finder icon using native macOS tools.
|
||||
echo "=== APPLY DMG ICON ==="
|
||||
|
||||
# Native macOS tools. No Homebrew dependencies.
|
||||
REZ="$(xcrun --find Rez)"
|
||||
SETFILE="$(xcrun --find SetFile)"
|
||||
|
||||
[[ -f "$INSTALLER_ICNS" ]] || {
|
||||
echo "ERROR: Installer .icns missing" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Create an icon resource containing the .icns data.
|
||||
ICON_RESOURCE="${TMPDIR:-/tmp}/PHPGuardInstaller-$$.r"
|
||||
|
||||
python3 - "$INSTALLER_ICNS" "$ICON_RESOURCE" <<'ICONPY'
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
icon = Path(sys.argv[1]).read_bytes()
|
||||
|
||||
if not icon.startswith(b"icns"):
|
||||
raise SystemExit("ERROR: Invalid .icns file")
|
||||
|
||||
hexdata = icon.hex().upper()
|
||||
|
||||
with open(sys.argv[2], "w") as f:
|
||||
f.write("data 'icns' (-16455) {\n")
|
||||
for i in range(0, len(hexdata), 64):
|
||||
f.write(' $"' + hexdata[i:i+64] + '"\n')
|
||||
f.write("};\n")
|
||||
ICONPY
|
||||
|
||||
# Attach icon resource to the DMG.
|
||||
"$REZ" -append "$ICON_RESOURCE" -o "$DMG"
|
||||
|
||||
# Set the Finder custom-icon flag.
|
||||
"$SETFILE" -a C "$DMG"
|
||||
|
||||
rm -f "$ICON_RESOURCE"
|
||||
|
||||
echo "Custom DMG icon applied."
|
||||
|
||||
xcrun notarytool submit "$DMG" --keychain-profile "$PROFILE" --wait
|
||||
xcrun stapler staple "$DMG"
|
||||
xcrun stapler validate "$DMG"
|
||||
# Keep only the final release DMG in dist.
|
||||
echo "=== CLEAN RELEASE DIRECTORY ==="
|
||||
|
||||
find "$ROOT/dist" -maxdepth 1 -type f ! -name "$(basename "$DMG")" -delete
|
||||
|
||||
echo "Release ready: $DMG"
|
||||
|
||||
Reference in New Issue
Block a user