summaryrefslogtreecommitdiffstats
path: root/bin
diff options
context:
space:
mode:
authorBernhard Posselt <dev@bernhard-posselt.com>2016-04-03 11:58:20 +0200
committerBernhard Posselt <dev@bernhard-posselt.com>2016-04-03 11:58:20 +0200
commit27e0bd7e00c231d42dd69bd2cfa13b0b36c80b71 (patch)
tree97b75ec95109dabd34486df89fd9e6e1553a1768 /bin
parent3f142080db0e9216a55b770dbd8e6330c1c44b7d (diff)
move from python to php scripts
Diffstat (limited to 'bin')
-rwxr-xr-xbin/git/hooks/pre-commit10
-rw-r--r--bin/tools/generate_authors.php36
-rw-r--r--bin/tools/generate_authors.py47
3 files changed, 38 insertions, 55 deletions
diff --git a/bin/git/hooks/pre-commit b/bin/git/hooks/pre-commit
index 474894075..cdb450a64 100755
--- a/bin/git/hooks/pre-commit
+++ b/bin/git/hooks/pre-commit
@@ -3,13 +3,7 @@
# exit if any test fails
set -e
-# update checksums
-cd js
-grunt js-unit
-cd ..
+make test
-phpunit -c phpunit.xml
-phpunit -c phpunit.integration.xml
-
-python3 bin/tools/generate_authors.py
+php -f bin/tools/generate_authors.php
git add AUTHORS.md
diff --git a/bin/tools/generate_authors.php b/bin/tools/generate_authors.php
new file mode 100644
index 000000000..18018686e
--- /dev/null
+++ b/bin/tools/generate_authors.php
@@ -0,0 +1,36 @@
+<?php
+/**
+ * ownCloud - News
+ *
+ * This file is licensed under the Affero General Public License version 3 or
+ * later. See the COPYING file.
+ *
+ * @author Bernhard Posselt <dev@bernhard-posselt.com>
+ * @copyright Bernhard Posselt 2016
+ */
+
+$cmd = 'git --no-pager shortlog -nse HEAD';
+exec($cmd, $contributors);
+
+// extract data from git output into an array
+$regex = '/^\s*(?P<commit_count>\d+)\s*(?P<name>.*\w)\s*<(?P<email>[^\s]+)>$/';
+$contributors = array_map(function ($contributor) use ($regex) {
+ preg_match($regex, $contributor, $result);
+ return $result;
+}, $contributors);
+
+// filter out bots
+$contributors = array_filter($contributors, function ($contributor) {
+ return strpos($contributor['name'], 'Jenkins') !== 0;
+});
+
+// turn tuples into markdown
+$markdownLines = array_map(function ($contrib) {
+ return '* [' . $contrib['name'] . '](mailto:' . $contrib['email'] . ')';
+}, $contributors);
+
+// add headline
+array_unshift($markdownLines, '# Authors');
+
+$markdown = implode("\n", $markdownLines);
+file_put_contents('AUTHORS.md', $markdown);
diff --git a/bin/tools/generate_authors.py b/bin/tools/generate_authors.py
deleted file mode 100644
index 9354b9fec..000000000
--- a/bin/tools/generate_authors.py
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/usr/bin/env python3
-
-import subprocess
-import re
-import os.path
-
-contribs = subprocess.check_output(['git', '--no-pager', 'shortlog', '-nse', 'HEAD'])
-contrib_lines = contribs.decode('utf-8').split('\n')
-
-format_regex = r'^\s*(?P<commit_count>\d+)\s*(?P<name>.*\w)\s*<(?P<email>[^\s]+)>$'
-
-def tuple_to_markdown(tuple):
- return ('* [%s](mailto:%s)' % (tuple[0], tuple[1]))
-
-def line_to_tuple(line):
- result = re.search(format_regex, line)
- if result:
- return (
- result.group('commit_count'),
- result.group('name'),
- result.group('email')
- )
- else:
- return ()
-
-tuples = map(line_to_tuple, contrib_lines)
-tuples = filter(lambda x: len(x) > 0, tuples) # filter out empty results
-tuples = filter(lambda x: 'Jenkins' not in x[1], tuples) # filter out jenkins
-#tuples = sorted(tuples, key=lambda x: x[0], reverse=True)
-tuples = map(lambda x: (x[1], x[2]), tuples)
-authors = map(tuple_to_markdown, tuples)
-authors = '\n'.join(authors)
-
-header = '# Authors'
-contents = '%s\n%s' % (header, authors)
-
-# write contents into contributors file
-base_dir_diff = 2
-current_dir = os.path.dirname(os.path.realpath(__file__))
-base_dir = current_dir
-
-for x in range(base_dir_diff):
- base_dir = os.path.join(base_dir, os.pardir)
-
-contributors_file = os.path.join(base_dir, 'AUTHORS.md')
-with open(contributors_file, 'w') as f:
- f.write(contents)