patches
author Claus Gittinger <cg@exept.de>
Wed, 30 Jan 2013 14:31:05 +0100
changeset 1291 b7dc5d51d32b
parent 1259 dddef15229b7
child 1323 87de5e3d1239
permissions -rw-r--r--
*** empty log message ***

"/
"/ $Header$
"/
"/ This file is processed very early at initial startup (before any rc script)
"/ - not when resuming an image.
"/

"/
"/ set the package for changes done below
"/
Project notNil ifTrue:[
    |p|

    p := Project new.
    p package:#'patches'.
    Project current:p.
].

Smalltalk splashInfo:'patches [info]: installing patches...'.
!

"/ read patches from two patch-directories, called 'stxPatches' and 'userPatches'.
"/ (in the future, patch-sets will be delivered for that directory in the future)
"/ This is not yet done, but we are prepared here for this ...
"/
"/ Patches from that directory are read in alphabetic order;
"/ patches will be named them p_nnnn.st, where nnnn is a sequence-nr.

#(
    'stxPatches'
    'userPatches'
) do:[:patchDirName |
    |patchDirOrNil patchDir|

    patchDirOrNil := Smalltalk getSystemFileName:patchDirName.
    patchDirOrNil notNil ifTrue:[
	patchDir := patchDirOrNil asFilename.
	(patchDir exists and:[patchDir isDirectory and:[patchDir isReadable]]) ifTrue:[
	    patchDir directoryContents sort do:[:f |
		|file fn|

		fn := (file := patchDir construct:f) name.
		"JV@2012-08-15: File in only if file is not a directory. Otherwise system
		 crashes during startup, if one of the patch directories contains another directory
		 (such as CVS)"
		(file isDirectory not and:[file isReadable]) ifTrue:[
		    Smalltalk splashInfo:('patches [info]: reading patchFile ''' , fn , '''...').
		    AbortOperationRequest handle:[:ex |
			Smalltalk splashInfo:('patches [info]: aborted patch ',f).
		    ] do:[
			Smalltalk fileIn:fn.
		    ].
		]
	    ]
	]
    ].
].
!

"/
"/ the following patches where added by the changesBrowsers 'make change a patch'
"/ function ...
"/
!