mirror of
https://github.com/cool-RR/PySnooper.git
synced 2026-01-23 02:14:04 +00:00
Add generate_authors.py and AUTHORS
This commit is contained in:
parent
19122df94b
commit
463a91f6d5
2 changed files with 58 additions and 0 deletions
6
AUTHORS
Normal file
6
AUTHORS
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
Ram Rachum
|
||||
Oleg Butuzov
|
||||
Edward Betts
|
||||
wilfredinni
|
||||
Peter Bittner
|
||||
Alireza Ayinmehr
|
||||
52
misc/generate_authors.py
Normal file
52
misc/generate_authors.py
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
#!/usr/bin/env python
|
||||
# Copyright 2019 Ram Rachum.
|
||||
# This program is distributed under the MIT license.
|
||||
|
||||
|
||||
"""
|
||||
Generate an AUTHORS file for your Git repo.
|
||||
|
||||
This will list the authors by chronological order, from their first
|
||||
contribution.
|
||||
|
||||
You probably want to run it this way:
|
||||
|
||||
./generate_authors > AUTHORS
|
||||
|
||||
"""
|
||||
|
||||
|
||||
import time
|
||||
|
||||
import subprocess
|
||||
|
||||
|
||||
def drop_recurrences(iterable):
|
||||
s = set()
|
||||
for item in iterable:
|
||||
if item not in s:
|
||||
s.add(item)
|
||||
yield item
|
||||
|
||||
|
||||
def iterate_authors_by_chronological_order():
|
||||
log_call = subprocess.run(
|
||||
(
|
||||
'git', 'log', 'master', '--encoding=utf-8', '--full-history',
|
||||
'--reverse', '--format=format:%at;%an;%ae'
|
||||
),
|
||||
stdout=subprocess.PIPE, stderr=subprocess.PIPE,
|
||||
)
|
||||
log_lines = log_call.stdout.decode('utf-8').split('\n')
|
||||
|
||||
return drop_recurrences(
|
||||
(line.strip().split(";")[1] for line in log_lines)
|
||||
)
|
||||
|
||||
|
||||
def print_authors():
|
||||
for author in iterate_authors_by_chronological_order():
|
||||
print(author)
|
||||
|
||||
if __name__ == '__main__':
|
||||
print_authors()
|
||||
Loading…
Add table
Add a link
Reference in a new issue