Simple Test for PowerPC-only Applications?

One of the consequences of upgrading to Snow Leopard will be that it doesn’t automatically install Rosetta (which saves a lot of disk space). That means, however, that any apps you’ve still got on your Intel Mac that were PowerPC only need to be upgraded or trashed unless you’re willing to do a separate install of Rosetta (large).

I vaguely recall seeing a script (that I cannot now find) showing a way to sort out whether an app was Universal or PowerPC only (as can be seen in the Info pane). Anyone know it?

Not sure what one you saw, but Hayne over on Macosxhints posted about the command line tool Lipo

http://forums.macosxhints.com/showthread.php?t=57621

You need to the actual exactable rather than the app package.

example given is :
% lipo -info /Applications/Mail.app/Contents/MacOS/Mail
–>Non-fat file: /Applications/Mail.app/Contents/MacOS/Mail is architecture: ppc

set a to choose file
tell application "Finder"
	if (kind of a) ends with "(Universal)" then
		set isUniversalApp to true
	else
		set isUniversalApp to false
	end if
end tell
return isUniversalApp

Thanks, Hank.

Using Hank’s method, I came up with this:

set allApps to paragraphs of (do shell script "mdfind -onlyin / 'kMDItemKind == \"Application\"'")
set PCApps to {}
repeat with oneApp in allApps
	set thisApp to (POSIX file oneApp) as alias
	tell application "Finder"
		if (kind of thisApp) ends with "(PowerPC)" then
			set end of PCApps to name of thisApp
		end if
	end tell
end repeat

set NF to open for access ((path to desktop folder as text) & "PC_Apps.txt") with write permission
try
	set eof of NF to 0
	write "Pure PC Applications" & return & return to NF
	repeat with oneItem in PCApps
		write oneItem & return to NF
	end repeat
	close access NF
on error
	close access NF
end try

That generated a long list of apps (300 in my case), but after examining some of them it was clear that they simply didn’t identify themselves as (Universal), (Intel), or (PowerPC) in a get info window.