Search code examples
xcodeapplescriptapplescript-objcparagraphs

using Paragraphs in Xcode in AppleScriptObjC


do shell script "mdfind kMDItemCFBundleIdentifier = com.test.sample > ~/Documents/sampleBuilds.txt"
set homeFolder to (path to home folder)
set sampleFiles to paragraphs of (read POSIX file (POSIX path of homeFolder & "/Documents/sampleBuilds.txt"))
        
if (count of sampleFiles) is 0 then
    display notification "No Sample builds are present on the system"
else
    set sampleFiles to paragraphs of (read POSIX file (POSIX path of homeFolder & "/Documents/sampleBuilds.txt"))                
    display dialog "You have " & (count of sampleFiles) & " build(s) of Sample on your system. Would you like to remove them all? This cannot be undone"

    repeat with c in SampleFiles
        do shell script "rm -rf " & (quoted form of c)
        display notification "Sample build located at " & c & " has been removed from your system"
    end repeat
            
    do shell script "rm -rf ~/Documents/SampleBuilds.txt"
end if

When placing script into Xcode with correct sender I get the error:

[AppDelegate testScript:]: Can’t make current application into type file. (error -1700) on the line

set sampleFiles to paragraphs of (read POSIX file (POSIX path of homeFolder & "/Documents/sampleBuilds.txt"))

Any thoughts on how to get Xcode in AppleScript Application to accept this script?


Solution

  • The coercion to POSIX file is not needed which solves the issue.

    set sampleFiles to paragraphs of (read (POSIX path of homeFolder & "/Documents/sampleBuilds.txt"))
    

    Basically in AppleScriptObjC POSIX file foo doesn't work, you have to write foo as POSIX file.

    Side note:

    Reading the text twice is redundant. You can delete the second set sampleFiles to ... line.