Legoktm has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/192177

Change subject: Add script to create a composer.local.json based on a list of 
extensions
......................................................................

Add script to create a composer.local.json based on a list of extensions

Change-Id: Id321bdb91e844d14275eac6a5f21a643ea283199
---
A bin/mw-create-composer-local.py
A tests/test_mw-create-composer-local.py
2 files changed, 67 insertions(+), 0 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/integration/jenkins 
refs/changes/77/192177/1

diff --git a/bin/mw-create-composer-local.py b/bin/mw-create-composer-local.py
new file mode 100755
index 0000000..b4d3958
--- /dev/null
+++ b/bin/mw-create-composer-local.py
@@ -0,0 +1,39 @@
+#!/usr/bin/env python
+from __future__ import print_function
+"""
+Creates a composer.local.json file for the
+composer-merge-plugin to read based on a list
+of provided extensions.
+
+Usage: mw-create-composer-local.py extension_list.txt src/composer.local.json
+
+"""
+
+import json
+import sys
+
+
+def main(extlist_path, composerlocal_path):
+    with open(extlist_path) as f:
+        extensions = [ext.strip()[len('mediawiki/'):]
+                      for ext in f.read().splitlines()
+                      if ext.strip().startswith('mediawiki/extensions/')]
+
+    out = {
+        'extra': {
+            'merge-plugin': {
+                'include': extensions
+            }
+        }
+    }
+
+    with open(composerlocal_path, 'w') as f:
+        json.dump(out, f)
+
+    print('Created composer.local.json.')
+
+if __name__ == '__main__':
+    if len(sys.argv) != 3:
+        print('Invalid number of arguments provided')
+        sys.exit(1)
+    main(sys.argv[1], sys.argv[2])
diff --git a/tests/test_mw-create-composer-local.py 
b/tests/test_mw-create-composer-local.py
new file mode 100644
index 0000000..a3ab003
--- /dev/null
+++ b/tests/test_mw-create-composer-local.py
@@ -0,0 +1,28 @@
+#!/usr/bin/env python
+
+import imp
+import os
+import tempfile
+import unittest
+path = os.path.dirname(os.path.dirname(__file__)) \
+       + '/bin/mw-create-composer-local.py'
+mw_create_composer_local = imp.load_source('mw-create-composer-local', path)
+
+
+class TestMwCreateComposerLocal(unittest.TestCase):
+    def test_main(self):
+        _, el_path = tempfile.mkstemp()
+        with open(el_path, 'w') as f:
+            f.write("""
+mediawiki/extensions/FooBar
+mediawiki/extensions/BarFoo
+
+mediawiki/extensions/BazFoo
+    """.strip())
+        _, clocal_path = tempfile.mkstemp()
+        mw_create_composer_local.main(el_path, clocal_path)
+        self.assertEqual(
+            open(clocal_path).read(),
+            '{"extra": {"merge-plugin": {"include": ["extensions/FooBar", '
+            '"extensions/BarFoo", "extensions/BazFoo"]}}}'
+        )

-- 
To view, visit https://gerrit.wikimedia.org/r/192177
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Id321bdb91e844d14275eac6a5f21a643ea283199
Gerrit-PatchSet: 1
Gerrit-Project: integration/jenkins
Gerrit-Branch: master
Gerrit-Owner: Legoktm <legoktm.wikipe...@gmail.com>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to