Difference between revisions of "Automatic Icon Positioning (Packaging)"
Line 1: | Line 1: | ||
− | Here is an Apple Script allowing to automatically place correctly the | + | Here is an Apple Script allowing to automatically place correctly the icons in OpenOffice installation folder : |
− | |||
− | |||
<pre> | <pre> | ||
− | tell application "Finder" | + | 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 | |
− | return | + | end tell |
− | end | + | 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.