#FEATURE by cg
authorClaus Gittinger <cg@exept.de>
Thu, 28 Nov 2019 15:38:03 +0100
changeset 4516 f5c862a086b3
parent 4515 811b98a61c23
child 4517 8fbd240dfd1e
#FEATURE by cg class: SourceCodeManagerUtilitiesForContainerBasedManagers added: #tagExtensionsFromPackage:with:
SourceCodeManagerUtilitiesForContainerBasedManagers.st
--- a/SourceCodeManagerUtilitiesForContainerBasedManagers.st	Thu Nov 28 15:37:42 2019 +0100
+++ b/SourceCodeManagerUtilitiesForContainerBasedManagers.st	Thu Nov 28 15:38:03 2019 +0100
@@ -604,6 +604,36 @@
     "Created: / 05-12-2017 / 20:03:19 / cg"
     "Modified: / 05-12-2017 / 23:15:52 / cg"
     "Modified: / 23-09-2018 / 04:18:14 / Claus Gittinger"
+!
+
+tagExtensionsFromPackage:aPackageID with:tag
+    "checkin a projects extensions into the source repository.
+     If the argument, aLogInfoOrStringOrNil isNil, ask interactively for log-message."
+
+    |logMessage checkinInfo mgr pri module directory containerFileName extensionsSource path|
+
+    mgr := self sourceCodeManagerFor:aPackageID asPackageId projectDefinitionClass.
+    mgr isNil ifTrue:[ ^ false ].
+
+    module := aPackageID asPackageId module.
+    directory := aPackageID asPackageId directory.
+    containerFileName := self nameOfExtensionsContainer.
+
+    (mgr checkForExistingContainer:containerFileName inModule:module directory:directory) ifFalse:[
+        (self checkForExistingModule:module usingManager:mgr allowCreate:true) ifFalse:[^ false].
+        LastModule := module.
+
+        (self checkForExistingModule:module directory:directory usingManager:mgr allowCreate:true) ifFalse:[^ false].
+        LastPackage := directory.
+
+        (self checkForExistingModule:module directory:directory container:containerFileName usingManager:mgr allowCreate:true) ifFalse:[^ false].
+    ].
+
+    self activityNotification:(resources string:'Tagging %1' with:containerFileName).
+
+    path := (module, '/', directory, '/', containerFileName).
+    self tagPath:path as:tag usingManager:mgr.    
+    ^ true
 ! !
 
 !SourceCodeManagerUtilitiesForContainerBasedManagers class methodsFor:'documentation'!