diff options
Diffstat (limited to 'instsetoo_native/macosx/application/main.applescript')
-rw-r--r-- | instsetoo_native/macosx/application/main.applescript | 363 |
1 files changed, 0 insertions, 363 deletions
diff --git a/instsetoo_native/macosx/application/main.applescript b/instsetoo_native/macosx/application/main.applescript deleted file mode 100644 index c5c100004ac8..000000000000 --- a/instsetoo_native/macosx/application/main.applescript +++ /dev/null @@ -1,363 +0,0 @@ -(************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - *************************************************************************) - -(*==== (global variables as get-functions) ====*) - -on getOOInstallPath() - return (((path to me) as string) & "Contents:") -end getOOInstallPath - -on getOOResourcesPath() - return (((path to me) as string) & "Contents:Resources:") -end getOOResourcesPath - -on getOOProgramPath() - return (getOOInstallPath() & "MacOS:") -end getOOProgramPath - -on getScriptPath() - -- set this to absolute path when debugging - return (((path to me) as string) & "Contents:Resources:Scripts:") -end getScriptPath - -on getOOUserSettingsPath() - return (((path to home folder) as string) & "Library:Application Support:OpenOffice.org:%USERDIRPRODUCTVERSION:") -end getOOUserSettingsPath - -on getOOUserFontPath() - return (getOOUserSettingsPath() & "user:fonts:") -end getOOUserFontPath - -on getUserLogsPath() - return (((path to home folder) as string) & "Library:Logs:") -end getUserLogsPath - -on shellTerminator() - return (" &>/dev/null & echo $!") as string -end shellTerminator - --- --- the default handlers: run, open, idle, quit --- - -on run - if (preRun()) then - logEvent("(Scripts/main) Running OpenOffice.org") - openSoffice("-") - end if -end run - -on open (theFiles) - if (preRun()) then - openFiles(theFiles) - end if -end open - -on idle - -- close icon only if ooo has terminated - if (hasOOoQuit()) then - tell me to quit - end if - -- check all x seconds if ok to quit - return 3 -end idle - -on quit - if (hasOOoQuit()) then - continue quit - end if -end quit - -------------------------------------------------------------- - -on preRun() - - - -- Check for the required version of Mac OS X - if (not atLeastOSXVersion(10, 3, 0)) then - display dialog getMessage("ERROR_NEED_PANTHER") - return false - end if - - -- Check for that OOo can be found - if (not isRealPath(getOOProgramPath())) then - display dialog getMessage("ERROR_OOO_NOT_FOUND") - return false - end if - - if (not isRealPath(getOOUserFontPath())) then - set createUserFont to "mkdir -p " & (quoted form of POSIX path of getOOUserFontPath()) & "; " - do shell script createUserFont - end if - - -- If no crash occured before, ~/Library/Logs does not exist, and OpenOffice.org cannot be started - if (not isRealPath(getUserLogsPath())) then - set createUserLogsPath to "mkdir -p " & (quoted form of POSIX path of getUserLogsPath()) & "; " - do shell script createUserLogsPath - end if - - -- Checks are ok, now do the PostInstall stuff (e.g. fondu) - - -- load helper library - set postinstall to load script alias - (getScriptPath() & "PostInstall.scpt") - -- execute the postinstall script - run of postinstall - - - return true -end preRun - - -on hasOOoQuit() - if (isRealPath(getOOProgramPath())) then - -- set the location of soffice binary - set soffice to (quoted form of (POSIX path of getOOProgramPath() & "soffice")) - - set isRunning to do shell script "_FOUND_=`ps -wx -o command | grep " & soffice & " | grep -v grep`; echo $_FOUND_" - if isRunning "" then - return false - else - return true - end if - else - return true - end if -end hasOOoQuit - - -on openSoffice(aFile) - set theDisplay to startXServer() - if (theDisplay is equal to "error") then - return - end if - set theEnv to "DISPLAY=" & theDisplay & " ; export DISPLAY; " - set theCmd to "sh " & (quoted form of (POSIX path of getOOProgramPath() & "soffice")) & " " - do shell script theEnv & theCmd & aFile & shellTerminator() - -- logEvent("open CMD: " & theEnv & theCmd & aFile) -end openSoffice - - --- helper function to start X11 server -on startXServer() - - -- get X settings - set XSettingsList to findXServer() - set whichserver to item 1 of XSettingsList - set Xserverloc to item 2 of XSettingsList - - -- debug: - -- logEvent("(scripts/main) X settings: " & whichserver & "--" & POSIX path of Xserverloc) - -- set whichserver to "NOXSERVER" - - -- if nothing really was found, display an error message. - if (whichserver is equal to "NOXSERVER") then - - display dialog getMessage("ERROR_NEED_X11") buttons {"Quit", "More Info"} default button "More Info" - if the button returned of the result is "Quit" then - quit - else - -- if more info is chosen, then open a help web page - do shell script "open http://porting.openoffice.org/mac/faq/installing/X11.html" - -- cannot continue, so quit the script - return "error" - end if - - end if - - set now_running to "" - set now_running to do shell script "INX=`ps -wcx | grep " & quoted form of (whichserver & "$") & "`; echo $INX" - if whichserver = "NOXSERVER" then - -- display dialog "No XServer Found" - set now_running to "Skip" - end if - if now_running = "" then - if whichserver = "X11" then - set x11cmd to quoted form of (Xserverloc & "/Contents/MacOS/X11") & shellTerminator() - do shell script x11cmd - -- save process id - set x11pid to the result - -- wait until the window manager is started which is the second child process of x11 - set numchildrencmd to "ps -x -o ppid | grep " & x11pid & " | wc -l" - set numchildren to 0 - set d to current date - set t1 to time of d - repeat while numchildren 2 - set d to current date - set t2 to time of d - -- give up after 30 seconds - if t2 - t1 > 30 then - display dialog "Command timed out" - exit repeat - end if - set result to do shell script numchildrencmd - set numchildren to result as integer - end repeat - else -- startup XDarwin - do shell script "open " & quoted form of Xserverloc & shellTerminator() - do shell script "sleep 4" - end if - end if - if whichserver is equal to "X11" then - -- the DISPLAY variable is different for every user currently logged in - -- X11 passes the DISPLAY as the last command line parameter to its child process - -- we can use ps to read the command line and parse the trailing :0, :1, or whatever - set xdisplay to do shell script "ps -wx -o command | grep X11.app | grep \":.$\" | sed \"s/^.*:/:/g\"" - --display dialog xdisplay - return xdisplay - else - -- TODO: find out how XDarwin does it - return ":0" - end if -end startXServer - - -on openFiles(fileList) - if (count of fileList) > 0 then - repeat with i from 1 to the count of fileList - set theDocument to (item i of fileList) - set theFilePath to (quoted form of POSIX path of theDocument) - set theFileInfo to (info for theDocument) - openSoffice(theFilePath) - logEvent("(Scripts/main) Open file: " & theFilePath) - end repeat - end if -end openFiles - - -(* ===== (Helper functions) ======= *) - --- get a localized string -on getMessage(aKey) - try - if (aKey is equal to "YES_KEY") then - return "Yes" - end if - - if (aKey is equal to "NO_KEY") then - return "No" - end if - - if (aKey is equal to "ERROR_OOO_NOT_FOUND") then - return "OpenOffice.org was not found on your system. Please (re-)install OpenOffice.org first." - end if - - if (aKey is equal to "ERROR_NEED_PANTHER") then - return "This build of OpenOffice.org cannot be run on this system, OpenOffice.org requires MacOSX 10.3 (Panther) or newer system" - end if - - if (aKey is equal to "ERROR_NEED_X11") then - return "OpenOffice.org for Mac OS X cannot be started, because the X11 software is not installed. Please install Apple X11 first from the Mac OS X install DVD. More information: http://porting.openoffice.org/mac/faq/installing/X11.html" - end if - end try -end getMessage - - --- function for logging script messages -on logEvent(themessage) - set theLine to (do shell script - "date +'%Y-%m-%d %H:%M:%S'" as string) - & " " & themessage - do shell script "echo " & quoted form of theLine & - " >> ~/Library/Logs/OpenOffice%USERDIRPRODUCTVERSION.log" -end logEvent - - --- function for checking if a path exists -on isRealPath(aPath) - try - alias aPath - return true - on error - -- error number -43 from aPath - -- display dialog "NotRP -- " & aPath - return false - end try -end isRealPath - --- try to find X11 server on the Mac OS X system --- return value: the found server or "NOXSERVER" -on findXServer() - -- First try standard X11 location, then try standard XDarwin location - - set whichserver to "NOXSERVER" - --Utilities folder of system - set Xserverloc to ((path to utilities folder from system domain) as string) & "X11.app:" - --display dialog " Xserverloc" & Xserverloc - if (isRealPath(Xserverloc)) then - set whichserver to "X11" - set Xserverloc to (POSIX path of Xserverloc) - else - --Applications folder of system - set Xserverloc to ((path to applications folder from system domain) as string) & "XDarwin.app:" - if (isRealPath(Xserverloc)) then - set whichserver to "XDarwin" - set Xserverloc to (POSIX path of Xserverloc) - end if - end if - - -- if nothing found yet try using locate, first with X11.app and then with XDarwin.app - if (whichserver is equal to "NOXSERVER") then - set Xserverloc to do shell script "locate X11.app/Contents/MacOS/X11 | sed -e 's-/Contents/MacOS/X11--g'" - if Xserverloc "" then - set whichserver to "X11" - end if - end if - - if (whichserver is equal to "NOXSERVER") then - set Xserverloc to do shell script "locate XDarwin.app/Contents/MacOS/XDarwin | sed -e 's-/Contents/MacOS/XDarwin--g'" - if Xserverloc "" then - set whichserver to "XDarwin" - end if - end if - - return {whichserver, Xserverloc} -end findXServer - - --- Test for a minimum version of Mac OS X -on atLeastOSXVersion(verMajor, verMinor, verStep) - -- The StandardAdditions's 'system attribute' used to be the Finder's 'computer' command. - tell application "Finder" to set sysv to (system attribute "sysv") - - -- Generate sysv-compatible number from given version - set reqVer to ((verMajor div 10) * 4096 + (verMajor mod 10) * 256 + verMinor * 16 + verStep) - - -- DEBUGGING: - -- display dialog ("RV:" & reqVer & " < " & sysv as string) - - -- set major to ((sysv div 4096) * 10 + (sysv mod 4096 div 256)) - -- set minor to (sysv mod 256 div 16) - -- set step to (sysv mod 16) - -- display dialog ("Your Mac OS X version: " & major & "." & minor & "." & step) - - if (reqVer > sysv) then - return false - else - return true - end if -end atLeastOSXVersion |