class: Tools::NewSystemBrowser
changed: #createPatchFileForDiffSet:checkingForVersionBefore:
--- a/Tools__NewSystemBrowser.st Thu Jan 23 17:11:58 2014 +0100
+++ b/Tools__NewSystemBrowser.st Thu Jan 23 17:12:39 2014 +0100
@@ -34439,7 +34439,7 @@
"for now, this works only for a diffSet containing only a single class"
|highest highestString nrString nr fileNamePrefix fileNameMiddle stxPatchesDir
- changedClassesAndMetaclasses changedClasses fileName changedOwningClasses generatedPatchFilename tempStream changeSet|
+ changedClassesAndMetaclasses changedClasses fileName changedOwningClasses generatedPatchFilename tempStream changeSet labels values answer|
"/ find the highest numbered patchfile
'stxPatches' asFilename directoryContentsDo:[:fn |
@@ -34455,7 +34455,7 @@
].
].
highest isNil ifTrue:[
- fileNamePrefix := '01'
+ fileNamePrefix := '0001'
] ifFalse:[
fileNamePrefix := (highest+1) printStringLeftPaddedTo:(highestString size) with:$0.
].
@@ -34473,7 +34473,7 @@
fileNameMiddle := 'patches'
].
fileNameMiddle := fileNameMiddle asFilename makeLegalFilename name.
- fileName := (fileNamePrefix,'_',fileNameMiddle,'.st') asFilename.
+ fileName := (fileNamePrefix,'_',fileNameMiddle,'.chg') asFilename.
stxPatchesDir := 'stxPatches' asFilename.
stxPatchesDir exists ifFalse:[
@@ -34486,7 +34486,7 @@
tempStream nextPutLine:('"/ first, a guard, to ignore the patch if the library already contains an up-to-date class:').
tempStream nextPutLine:('"/').
changedOwningClasses do:[:eachClass |
- tempStream nextPutLine:('(AbstractSourceCodeManager isRevision:(%2 revision) sameOrAfter:''%1'') ifTrue:[ AbortSignal raiseErrorString:''patch is for older version'' ].'
+ tempStream nextPutLine:('(''%1'' compareAsVersionNumberWith:%2 revision) < 0 ifTrue:[ InvalidPatchError raiseErrorString:''patch is for older version (%1) of class %2'' ].'
bindWith:eachClass revision
with:eachClass name).
].
@@ -34499,10 +34499,27 @@
generatedPatchFilename := ('stxPatches' asFilename construct:fileName).
tempStream fileName renameTo:generatedPatchFilename.
- (Dialog
- confirm:('Created new patchFile as: "%1"' bindWith:generatedPatchFilename name)
- yesLabel:'Show' noLabel:'OK')
- ifTrue:[
+
+ labels := #('OK' 'Show' 'Generate Signed Patch').
+ values := #(ok show sign).
+
+ (Smalltalk at:#'Expecco::KeyFileGenerator') isNil ifTrue:[
+ "Cannot sign"
+ labels := labels copyButLast:1.
+ values := values copyButLast:1.
+ ].
+ answer := Dialog
+ confirmWithCancel:('Created new patchFile as: "%1"' bindWith:generatedPatchFilename name)
+ labels:labels values:values default:1.
+ answer == #sign ifTrue:[
+ |pkcs7SignedData|
+
+ pkcs7SignedData := Expecco::KeyFileGenerator new signExpeccoCode:generatedPatchFilename contentsOfEntireFile.
+ (generatedPatchFilename withSuffix:'expeccoPatch') contents:pkcs7SignedData.
+
+ UserPreferences fileBrowserClass openOn:generatedPatchFilename
+ ].
+ answer == #show ifTrue:[
UserPreferences fileBrowserClass openOn:generatedPatchFilename
].
@@ -59426,11 +59443,11 @@
!NewSystemBrowser class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libtool/Tools__NewSystemBrowser.st,v 1.2006 2014-01-17 10:57:26 sr Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/Tools__NewSystemBrowser.st,v 1.2007 2014-01-23 16:12:39 stefan Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libtool/Tools__NewSystemBrowser.st,v 1.2006 2014-01-17 10:57:26 sr Exp $'
+ ^ '$Header: /cvs/stx/stx/libtool/Tools__NewSystemBrowser.st,v 1.2007 2014-01-23 16:12:39 stefan Exp $'
!
version_HG
@@ -59439,7 +59456,7 @@
!
version_SVN
- ^ '$Id: Tools__NewSystemBrowser.st,v 1.2006 2014-01-17 10:57:26 sr Exp $'
+ ^ '$Id: Tools__NewSystemBrowser.st,v 1.2007 2014-01-23 16:12:39 stefan Exp $'
! !