class: Tools::NewSystemBrowser
authorStefan Vogel <sv@exept.de>
Thu, 23 Jan 2014 17:12:39 +0100
changeset 13778 91eabb806296
parent 13777 d6790fd30759
child 13779 65c5b77e754a
class: Tools::NewSystemBrowser changed: #createPatchFileForDiffSet:checkingForVersionBefore:
Tools__NewSystemBrowser.st
--- 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 $'
 ! !