Mariano Martinez Peck wrote:
Hi guys. After playing a little bit with StartupPreferences, and continuing
the effort of Ben (thanks Ben for yet another great tool), I generate a
improved (from my point of view) version of the tool.

The main changes are:

a) Previously the tool searched files 1) first in image directory, 2) then
in the preference folder and 3) finally in the general preference folder.
As soon as it found at least one file, I didn't continue with the rest of
the places. Now, it starts the other way around, from the most general to
the most spceific. Starts in 3), then 2) and finally 1)

Moreover, it does
not stop when it finds files in any of them. So all are searched and
executed. It works or or less the same way as variables in UNIX with
.bashrc /etc/envirorment, etc...

Did it actually work like that? I thought it had worked for me processing more than one file from each preferences folders. It seemed only the image folder was restricted to a single specific file 'startup.st' I assume this was to avoid processing any other random .st files that might happen appear in the image folder. I had been considering a refactoring like your #lookInFolder, but was concerned about picking up random .st files in the image folder.

I haven't gone through the your new methods in detail, but I've expanded your changes to the existing architecture to also resolve the issue with Windows. Basically I've thrown away what I was trying to do putting the configs into standard Microsoft locations. That was mainly to deal the location of config folders being hardcoded at two level down from root, which I have now removed this constraint. The config folder can now be located anywhere in the parent path from the image up to root.

The key addition is #ascendingSearchForDirectory for which you can try these out... FileDirectory default ascendingSearchForDirectory: 'mariano' FileDirectory default ascendingSearchForDirectory: 'Users' FileDirectory default ascendingSearchForDirectory: 'Contents' "Valid for one-click image" FileDirectory default ascendingSearchForDirectory: FileDirectory configFolderLocalName FileDirectory preferencesGeneralFolder
   FileDirectory preferencesFolder



b) I have created several class side methods (addAtStartup*) to create
given actions into the current directory. Previously, files were created in
2 folders at the same time and there were only the possibility to create
only in one place. Now you can add startup actions in any of the 3 places
mentioned in a)

c) Added a whole protocol (remove* and clean*) to remove script files from
all folders of a) and also to clean the internal stored actions.

d) Lots of internal refactors to reuse code and less hardcoding.

Does someone want to take a look to the slice ?
Slice in inbox: http://code.google.com/p/pharo/issues/detail?id=5835

Cheers,



Reply via email to