Things I changed:
-
Added a force flag
-f
to really remove expired provisioning profiles. - Improved std output just a bit.
Hope it is useful.
#!/bin/bash
REMOVE_FLAG=$1
echo "Will check files: ${USER}/Library/MobileDevice/Provisioning\ Profiles/*.mobileprovision"
for provisioning_profile in ~/Library/MobileDevice/Provisioning\ Profiles/*.mobileprovision;
do
filename=$(basename "${provisioning_profile}")
printf "Checking %s ..." "${filename}"
# pull the expiration date from the plist
provisingInfo=$(security cms -D -i "${provisioning_profile}")
expirationDate=$(/usr/libexec/PlistBuddy -c 'Print :ExpirationDate' /dev/stdin <<< "$provisingInfo")
printf "ExpirationDate: \"%s\" " "${expirationDate}"
# convert expirationDate and current date to epoch (Unix Timestamps) then compare both.
timestamp_expiration=$(date -jf"%a %b %d %T %Z %Y" "${expirationDate}" +%s)
timestamp_now=$(date +%s)
if [ "$timestamp_now" -ge "$timestamp_expiration" ];
then
printf "🚨 EXPIRED\n"
if [ "$REMOVE_FLAG" = "-f" ];
then
rm -f "$provisioning_profile"
fi
else
printf "✅ Usable\n"
fi
done
Output:
0 comments :
Post a Comment