Running Compiled AppleScript from DMG Doesn't Work
As a follow up for my previous question (Set the Working Folder of .app
Created by Apple Script) I have the following problem.
I have an AppleScript which is Poor man's Installer:
tell me to activate
set appPath to POSIX path of (path to me as text)
set folderName to "'MyFolderName'"
set copyFolder to "cp -r " & appPath & folderName & "'/.' '/Library/Application Support/'" & folderName & "'/' & "
set exitScript to "exit 0;"
display dialog "Run Installer?" buttons {"Run", "Cancel"} default button 1
if the button returned of the result is "Run" then
do shell script copyFolder & exitScript with administrator privileges
display dialog "Finished Successfully!" buttons {"OK"} default button 1
end if
So the script above is compiled into Installer.app
.
Inside it I put the folder MyFolderName
which contains all the sources.
I create a a DMG with the title (Also the Path) My Project
.
I run Install.app
from the installer and it doesn't work.
I run the Installer.app
from Desktop (Or any other place on HD) and it works.
I also changed the DMG title to have no spaces MyProject
and it works.
So something in the parsing of appPath
into the Script doesn't work if it contains spaces.
Any idea?
Solution 1:
As I mentioned in my answer to your other question:
Note that when using this in a
do shell script
command, usequoted form of
to allow for spaces in the path filename.
Otherwise you'd need to escape spaces with a backslash \
, and that can get messy.
Example: quoted form of appPath
You might want to do the concatenation separately and then pass it to the command.