stx_goodies_petitparser.st
changeset 382 1825151d6455
parent 379 451b5ae38b72
child 383 e9919f8e47de
--- a/stx_goodies_petitparser.st	Sat Oct 04 21:26:15 2014 +0100
+++ b/stx_goodies_petitparser.st	Sun Oct 05 00:29:07 2014 +0100
@@ -7,6 +7,12 @@
 	category:'* Projects & Packages *'
 !
 
+!stx_goodies_petitparser class methodsFor:'documentation'!
+
+extensionsVersion_HG
+
+    ^ '$Changeset: <not expanded> $'
+! !
 
 !stx_goodies_petitparser class methodsFor:'accessing'!
 
@@ -84,6 +90,8 @@
      by searching all classes (and their packages) which are referenced by my classes."
 
     ^ #(
+        #'stx:goodies/monticello'    "MCDirectoryRepository - referenced by stx_goodies_petitparser class>>exportAsMczTo:"
+        #'stx:libscm/mercurial/monticello'    "HGMCVersionInfo - referenced by stx_goodies_petitparser class>>exportAsMczTo:"
     )
 !
 
@@ -116,6 +124,26 @@
     "Created: / 17-12-2010 / 19:55:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
+!stx_goodies_petitparser class methodsFor:'description - compilation'!
+
+additionalRules_make_dot_proto
+    "allows for additional rules to be added to the make.proto file."
+
+    ^ '
+mc:
+    	mkdir mc
+
+mcz: mc
+    	$(TOP)/projects/smalltalk/smalltalk --eval "                                \
+                 Smalltalk packagePath add:''$(TOP)'' .                             \
+                 Smalltalk loadPackage:''stx:goodies/petitparser''.                 \
+                 (Smalltalk at: #''stx_goodies_petitparser'') exportAsMczTo: ''mc''."
+
+'
+
+    "Created: / 04-10-2014 / 21:45:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
 !stx_goodies_petitparser class methodsFor:'description - contents'!
 
 classNamesAndAttributes
@@ -272,6 +300,51 @@
     ^ "$SVN-Revision:"'11              '"$"
 ! !
 
+!stx_goodies_petitparser class methodsFor:'utilities - monticello'!
+
+exportAsMczTo: directory
+    "Export .mcz packages to given directory"
+
+    | packages exporter mcrepo |
+
+    Smalltalk loadPackage: 'stx:goodies/monticello'.
+    Smalltalk loadPackage: 'stx:libscm/mercurial/monticello'.
+    Class tryLocalSourceFirst: true.
+
+
+   packages := #(
+        'stx:goodies/petitparser'
+        'stx:goodies/petitparser/tests'
+        'stx:goodies/petitparser/analyzer'
+        'stx:goodies/petitparser/analyzer/tests'
+    ).
+
+    exporter := [:pkgnm|
+        | mcpkg mcwc mcvi mcversion |
+
+        Smalltalk loadPackage: pkgnm.
+        mcpkg := MCPackage named: pkgnm.
+        mcwc := mcpkg workingCopy.
+        mcvi := HGMCVersionInfo forPackage: pkgnm.
+        [
+           mcversion := mcwc newVersion
+        ] on: MCVersionNameAndMessageRequest do:[:ex |
+            ex resume: (Array with: mcvi name with: mcvi message)
+        ].
+        mcversion info: mcvi.
+        mcrepo storeVersion: mcversion.
+    ].
+
+    mcrepo := MCDirectoryRepository new directory: directory.
+    packages do: exporter.
+
+    "
+    stx_goodies_petitparser exportAsMczTo: '/tmp'
+    "
+
+    "Created: / 04-10-2014 / 21:30:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
 !stx_goodies_petitparser class methodsFor:'documentation'!
 
 version