Added: macOS fix script
This commit is contained in:
parent
fc3e07a229
commit
4a99da7bde
56
dot_config/bin/fix-macos-executable.tmpl
Executable file
56
dot_config/bin/fix-macos-executable.tmpl
Executable file
@ -0,0 +1,56 @@
|
||||
{{ if eq .chezmoi.os "darwin" -}}
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# A simple script to remove the quarantine attribute from a downloaded file
|
||||
# and apply an ad-hoc signature if it doesn't have a valid one.
|
||||
#
|
||||
# Usage: ./fix-app.sh /path/to/your/application
|
||||
|
||||
# --- 1. Input Validation ---
|
||||
# Check if the user provided exactly one argument.
|
||||
if [ "$#" -ne 1 ]; then
|
||||
echo "Usage: $0 <path_to_file>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
FILE_PATH="$1"
|
||||
|
||||
# Check if the file actually exists at the given path.
|
||||
if [ ! -e "$FILE_PATH" ]; then
|
||||
echo "Error: File not found at '$FILE_PATH'"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "✅ Processing file: $FILE_PATH"
|
||||
echo "-------------------------------------"
|
||||
|
||||
# --- 2. Remove Quarantine Attribute ---
|
||||
# The 'com.apple.quarantine' attribute is added by macOS to files
|
||||
# downloaded from the internet. We remove it to bypass Gatekeeper checks.
|
||||
echo "🔎 Checking for quarantine flag..."
|
||||
if xattr "$FILE_PATH" | grep -q "com.apple.quarantine"; then
|
||||
echo "- Quarantine flag found. Removing..."
|
||||
xattr -d com.apple.quarantine "$FILE_PATH"
|
||||
echo " Done."
|
||||
else
|
||||
echo "- No quarantine flag found. Skipping."
|
||||
fi
|
||||
|
||||
# --- 3. Check and Apply Code Signature ---
|
||||
# On Apple Silicon, all native executables must be signed.
|
||||
# We first verify the existing signature. If it's invalid or missing,
|
||||
# we apply a simple "ad-hoc" signature.
|
||||
echo "🔎 Checking code signature..."
|
||||
if codesign -v "$FILE_PATH" &> /dev/null; then
|
||||
echo "- File already has a valid signature. No action needed."
|
||||
else
|
||||
echo "- Signature is missing or invalid. Applying ad-hoc signature..."
|
||||
codesign --force --deep --sign - "$FILE_PATH"
|
||||
echo " Done."
|
||||
fi
|
||||
|
||||
echo "-------------------------------------"
|
||||
echo "🎉 File should now be runnable."
|
||||
|
||||
{{ end -}}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user