Difference between revisions of "Automatic Icon Positioning (Packaging)"

From Apache OpenOffice Wiki
Jump to: navigation, search
Line 1: Line 1:
Here is an Apple Script allowing to automatically place correctly the icon of OpenOffice :
+
Here is an Apple Script allowing to automatically place correctly the icons in OpenOffice installation folder :
 
+
Just need to replace "choose folder" with the path of the folder containing the OpenOffice packaging...
+
  
 
<pre>
 
<pre>
tell application "Finder"
+
on run argv
choose folder
+
set argv to POSIX file (item 1 of argv)
set fichiers to items of result
+
tell application "Finder"
set myText to ""
+
set fichiers to items of folder argv
set i to 0
+
set i to 0
repeat with myItem in fichiers
+
repeat with myItem in fichiers
set itemProperties to (properties of myItem)
+
set i to i + 1
set itemPos to position of itemProperties
+
set myName to name of itemProperties
+
set itemProperties to (properties of myItem)
set myText to myText & myName & ": " & (item 1 of itemPos) & ", " & (item 2 of itemPos) & return
+
set itemPos to position of itemProperties
set i to i + 1
+
set myName to name of itemProperties
-- display dialog i
+
if i is 1 then set position of myItem to {332, 191} -- in alphabetic order "Applications"
+
if i is 1 then set position of myItem to {332, 191} -- in alphabetic order "Applications"
if i is 2 then set position of myItem to {97, 62} -- LICENSEs
+
if i is 2 then set position of myItem to {97, 62} -- LICENSEs
if i is 3 then set position of myItem to {101, 191} -- OpenOffice*
+
if i is 3 then set position of myItem to {101, 191} -- OpenOffice*
if i is 4 then set position of myItem to {304, 61} -- READMEs
+
if i is 4 then set position of myItem to {304, 61} -- READMEs
end repeat
+
end repeat
-- display dialog myText
+
quit
return myText
+
end tell
end tell
+
return argv as string
 +
end run
 
</pre>
 
</pre>
  
 
To use it, assuming you called it ''ooo_pack_finalizer.scpt'', just type :
 
To use it, assuming you called it ''ooo_pack_finalizer.scpt'', just type :
 
$ osascript ooo_pack_finalizer.scpt
 
$ osascript ooo_pack_finalizer.scpt
 +
 +
To use it, from a remote host, you will need to sudo to access the WindowServer :
 +
$ sudo osascript ooo_pack_finalizer.scpt
 +
 +
Notice than executing that script will starts the Finder with root rights, and any user with physical access to the computer will be able to use Finder during the script execution (until quit). In order to avoid security problem, make sure the Finder is really quit either by issuing ''$ sudo osascript -e "tell application \"Finder\" to quit"'' or using ''sudo kill''. This way potential attackers will have access to Finder only few seconds.
 +
 +
For better security, it should be possible to lock the user interface during the execution of the script by developping a simple app which captures all mouse and keyboard events in order to disallow access to Finder. 
  
 
[[Category: Aqua]]
 
[[Category: Aqua]]
 
[[Category: Porting]]
 
[[Category: Porting]]
 
[[Category: MacOSX]]
 
[[Category: MacOSX]]

Revision as of 00:56, 20 May 2007

Here is an Apple Script allowing to automatically place correctly the icons in OpenOffice installation folder :

on run argv
	set argv to POSIX file (item 1 of argv)
	tell application "Finder"
		set fichiers to items of folder argv
		set i to 0
		repeat with myItem in fichiers
			set i to i + 1
			
			set itemProperties to (properties of myItem)
			set itemPos to position of itemProperties
			set myName to name of itemProperties
			
			if i is 1 then set position of myItem to {332, 191} -- in alphabetic order "Applications"
			if i is 2 then set position of myItem to {97, 62} -- LICENSEs
			if i is 3 then set position of myItem to {101, 191} -- OpenOffice*
			if i is 4 then set position of myItem to {304, 61} -- READMEs
		end repeat
		quit
	end tell
	return argv as string
end run

To use it, assuming you called it ooo_pack_finalizer.scpt, just type : $ osascript ooo_pack_finalizer.scpt

To use it, from a remote host, you will need to sudo to access the WindowServer : $ sudo osascript ooo_pack_finalizer.scpt

Notice than executing that script will starts the Finder with root rights, and any user with physical access to the computer will be able to use Finder during the script execution (until quit). In order to avoid security problem, make sure the Finder is really quit either by issuing $ sudo osascript -e "tell application \"Finder\" to quit" or using sudo kill. This way potential attackers will have access to Finder only few seconds.

For better security, it should be possible to lock the user interface during the execution of the script by developping a simple app which captures all mouse and keyboard events in order to disallow access to Finder.

Personal tools