authors: Clean up AUTHORS and NICKS files

Git didn't really understand the multiple email addresses in the NICKS
file the same way I expected it to, and this fixes that. It also makes
AUTHORS the "master" file that everything else depends on, so it
now includes all of name, nickname and email addresses.

GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/3243
This commit is contained in:
Jakob Borg 2016-06-02 08:19:12 +00:00 committed by Audrius Butkevicius
parent 36c6a1955f
commit d67c0a1eda
4 changed files with 303 additions and 193 deletions

181
AUTHORS
View File

@ -1,90 +1,95 @@
# This is the official list of Syncthing authors for copyright purposes. # This is the official list of Syncthing authors for copyright purposes.
# The format is:
#
# Name Name Name (nickname) <email1@example.com> <email2@example.com>
#
# The NICKS list is auto generated from this file.
Aaron Bieber <qbit@deftly.net> Aaron Bieber (qbit) <qbit@deftly.net>
Adam Piggott <aD@simplypeachy.co.uk> <simplypeachy@users.noreply.github.com> Adam Piggott (simplypeachy) <aD@simplypeachy.co.uk> <simplypeachy@users.noreply.github.com>
Alessandro G. <alessandro.g89@gmail.com> Alessandro G. (alessandro.g89) <alessandro.g89@gmail.com>
Alexander Graf <register-github@alex-graf.de> Alexander Graf (alex2108) <register-github@alex-graf.de>
Anderson Mesquita <andersonvom@gmail.com> Alexandre Viau (aviau) <alexandre@alexandreviau.net> <aviau@debian.org>
Andrew Dunham <andrew@du.nham.ca> Anderson Mesquita (andersonvom) <andersonvom@gmail.com>
Antony Male <antony.male@gmail.com> Andrew Dunham (andrew-d) <andrew@du.nham.ca>
Arthur Axel fREW Schmidt <frew@afoolishmanifesto.com> <frioux@gmail.com> Antony Male (canton7) <antony.male@gmail.com>
Alexandre Viau <alexandre@alexandreviau.net> <aviau@debian.org> Arthur Axel fREW Schmidt (frioux) <frew@afoolishmanifesto.com> <frioux@gmail.com>
Audrius Butkevicius <audrius.butkevicius@gmail.com> Audrius Butkevicius (AudriusButkevicius) <audrius.butkevicius@gmail.com>
Bart De Vries <devriesb@gmail.com> Bart De Vries (mogwa1) <devriesb@gmail.com>
Ben Curthoys <ben@bencurthoys.com> Ben Curthoys (bencurthoys) <ben@bencurthoys.com>
Ben Schulz <ueomkail@gmail.com> <uok@users.noreply.github.com> Ben Schulz (uok) <ueomkail@gmail.com> <uok@users.noreply.github.com>
Ben Sidhom <bsidhom@gmail.com> Ben Sidhom (bsidhom) <bsidhom@gmail.com>
Benny Ng <benny.tpng@gmail.com> Benny Ng (tpng) <benny.tpng@gmail.com>
Brandon Philips <brandon@ifup.org> Brandon Philips (philips) <brandon@ifup.org>
Brendan Long <self@brendanlong.com> Brendan Long (brendanlong) <self@brendanlong.com>
Brian R. Becker <brbecker@gmail.com> Brian R. Becker (brbecker) <brbecker@gmail.com>
Caleb Callaway <enlightened.despot@gmail.com> Caleb Callaway (cqcallaw) <enlightened.despot@gmail.com>
Carsten Hagemann <moter8@gmail.com> Carsten Hagemann (Moter8) <moter8@gmail.com>
Cathryne Linenweaver <cathryne.linenweaver@gmail.com> <Cathryne@users.noreply.github.com> Cathryne Linenweaver (Cathryne) <cathryne.linenweaver@gmail.com> <Cathryne@users.noreply.github.com>
Chris Howie <me@chrishowie.com> Chris Howie (cdhowie) <me@chrishowie.com>
Chris Joel <chris@scriptolo.gy> Chris Joel (cdata) <chris@scriptolo.gy>
Colin Kennedy <moshen.colin@gmail.com> Colin Kennedy (moshen) <moshen.colin@gmail.com>
Daniel Bergmann <dan.arne.bergmann@gmail.com> <brgmnn@users.noreply.github.com> Daniel Bergmann (brgmnn) <dan.arne.bergmann@gmail.com> <brgmnn@users.noreply.github.com>
Daniel Harte <daniel@harte.me> <daniel@danielharte.co.uk> <norgeous@users.noreply.github.com> Daniel Harte (norgeous) <daniel@harte.me> <daniel@danielharte.co.uk> <norgeous@users.noreply.github.com>
Daniel Martí <mvdan@mvdan.cc> Daniel Martí (mvdan) <mvdan@mvdan.cc>
David Rimmer <dinosore@dbrsoftware.co.uk> David Rimmer (dinosore) <dinosore@dbrsoftware.co.uk>
Denis A. <denisva@gmail.com> Denis A. (dva) <denisva@gmail.com>
Dennis Wilson <dw@risu.io> Dennis Wilson (snnd) <dw@risu.io>
Dominik Heidler <dominik@heidler.eu> Dominik Heidler (asdil12) <dominik@heidler.eu>
Elias Jarlebring <jarlebring@gmail.com> Elias Jarlebring (jarlebring) <jarlebring@gmail.com>
Emil Hessman <emil@hessman.se> Emil Hessman (ceh) <emil@hessman.se>
Erik Meitner <e.meitner@willystreet.coop> Erik Meitner (WSGCSysadmin) <e.meitner@willystreet.coop>
Federico Castagnini <federico.castagnini@gmail.com> Federico Castagnini (facastagnini) <federico.castagnini@gmail.com>
Felix Ableitner <me@nutomic.com> Felix Ableitner (Nutomic) <me@nutomic.com>
Felix Unterpaintner <bigbear2nd@gmail.com> Felix Unterpaintner (bigbear2nd) <bigbear2nd@gmail.com>
Francois-Xavier Gsell <fxgsell@gmail.com> Francois-Xavier Gsell (zukoo) <fxgsell@gmail.com>
Frank Isemann <frank@isemann.name> Frank Isemann (fti7) <frank@isemann.name>
Gilli Sigurdsson <gilli@vx.is> Gilli Sigurdsson (gillisig) <gilli@vx.is>
Jaakko Hannikainen <jgke@jgke.fi> Jaakko Hannikainen (jgke) <jgke@jgke.fi>
Jacek Szafarkiewicz <szafar@linux.pl> Jacek Szafarkiewicz (hadogenes) <szafar@linux.pl>
Jake Peterson <jake@acogdev.com> Jake Peterson (acogdev) <jake@acogdev.com>
Jakob Borg <jakob@nym.se> Jakob Borg (calmh) <jakob@nym.se>
James Patterson <jamespatterson@operamail.com> <jpjp@users.noreply.github.com> James Patterson (jpjp) <jamespatterson@operamail.com> <jpjp@users.noreply.github.com>
Jaroslav Malec <dzardacz@gmail.com> Jaroslav Malec (dzarda) <dzardacz@gmail.com>
Jens Diemer <github.com@jensdiemer.de> <git@jensdiemer.de> Jens Diemer (jedie) <github.com@jensdiemer.de> <git@jensdiemer.de>
Jochen Voss <voss@seehuhn.de> Jochen Voss (seehuhn) <voss@seehuhn.de>
Johan Vromans <jvromans@squirrel.nl> Johan Vromans (sciurius) <jvromans@squirrel.nl>
Karol Różycki <rozycki.karol@gmail.com> Karol Różycki (krozycki) <rozycki.karol@gmail.com>
Kelong Cong <kc04bc@gmx.com> <kc1212@users.noreply.github.com> Kelong Cong (kc1212) <kc04bc@gmx.com> <kc1212@users.noreply.github.com>
Ken'ichi Kamada <kamada@nanohz.org> Ken'ichi Kamada (kamadak) <kamada@nanohz.org>
Kevin Allen <kma1660@gmail.com> Kevin Allen (ironmig) <kma1660@gmail.com>
Lars K.W. Gohlke <lkwg82@gmx.de> Lars K.W. Gohlke (lkwg82) <lkwg82@gmx.de>
Laurent Etiemble <laurent.etiemble@gmail.com> <laurent.etiemble@monobjc.net> Laurent Etiemble (letiemble) <laurent.etiemble@gmail.com> <laurent.etiemble@monobjc.net>
Lode Hoste <zillode@zillode.be> Lode Hoste (Zillode) <zillode@zillode.be>
Lord Landon Agahnim <lordlandon@gmail.com> Lord Landon Agahnim (LordLandon) <lordlandon@gmail.com>
Marc Laporte <marc@marclaporte.com> <marc@laporte.name> Marc Laporte (marclaporte) <marc@marclaporte.com> <marc@laporte.name>
Marc Pujol <kilburn@la3.org> Marc Pujol (kilburn) <kilburn@la3.org>
Marcin Dziadus <dziadus.marcin@gmail.com> Marcin Dziadus (marcindziadus) <dziadus.marcin@gmail.com>
Mateusz Naściszewski <matin1111@wp.pl> Mateusz Naściszewski (mateon1) <matin1111@wp.pl>
Matt Burke <mburke@amplify.com> <burkemw3@gmail.com> Matt Burke (burkemw3) <mburke@amplify.com> <burkemw3@gmail.com>
Max Schulze <max.schulze@online.de> <kralo@users.noreply.github.com> Max Schulze (kralo) <max.schulze@online.de> <kralo@users.noreply.github.com>
Michael Jephcote <rewt0r@gmx.com> <Rewt0r@users.noreply.github.com> Michael Jephcote (Rewt0r) <rewt0r@gmx.com> <Rewt0r@users.noreply.github.com>
Michael Ploujnikov <ploujj@gmail.com> Michael Ploujnikov (plouj) <ploujj@gmail.com>
Michael Tilli <pyfisch@gmail.com> Michael Tilli (pyfisch) <pyfisch@gmail.com>
Nate Morrison <natemorrison@gmail.com> Nate Morrison (nrm21) <natemorrison@gmail.com>
Pascal Jungblut <github@pascalj.com> <mail@pascal-jungblut.com> Pascal Jungblut (pascalj) <github@pascalj.com> <mail@pascal-jungblut.com>
Peter Hoeg <peter@speartail.com> Peter Hoeg (peterhoeg) <peter@speartail.com>
Philippe Schommers <philippe@schommers.be> Philippe Schommers (filoozoom) <philippe@schommers.be>
Phill Luby <phill.luby@newredo.com> Phill Luby (pluby) <phill.luby@newredo.com>
Piotr Bejda <piotrb10@gmail.com> Piotr Bejda (piobpl) <piotrb10@gmail.com>
Ryan Sullivan <kayoticsully@gmail.com> Ryan Sullivan (KayoticSully) <kayoticsully@gmail.com>
Scott Klupfel <kluppy@going2blue.com> Scott Klupfel (kluppy) <kluppy@going2blue.com>
Sergey Mishin <ralder@yandex.ru> Sergey Mishin (ralder) <ralder@yandex.ru>
Stefan Kuntz <stefan.github@gmail.com> <Stefan.github@gmail.com> Stefan Kuntz (Stefan-Code) <stefan.github@gmail.com> <Stefan.github@gmail.com>
Stefan Tatschner <stefan@sevenbyte.org> <rumpelsepp@sevenbyte.org> Stefan Tatschner (rumpelsepp) <stefan@sevenbyte.org> <rumpelsepp@sevenbyte.org>
Tim Abell <tim@timwise.co.uk> Tim Abell (timabell) <tim@timwise.co.uk>
Tobias Nygren <tnn@nygren.pp.se> Tobias Nygren (tnn2) <tnn@nygren.pp.se>
Tomas Cerveny <kozec@kozec.com> Tomas Cerveny (kozec) <kozec@kozec.com>
Tully Robinson <tully@tojr.org> Tully Robinson (tojrobinson) <tully@tojr.org>
Tyler Brazier <tyler@tylerbrazier.com> Tyler Brazier (tylerbrazier) <tyler@tylerbrazier.com>
Veeti Paananen <veeti.paananen@rojekti.fi> Veeti Paananen (veeti) <veeti.paananen@rojekti.fi>
Victor Buinsky <vix_booja@tut.by> Victor Buinsky (buinsky) <vix_booja@tut.by>
Vil Brekin <vilbrekin@gmail.com> Vil Brekin (Vilbrekin) <vilbrekin@gmail.com>
William A. Kennington III <william@wkennington.com> William A. Kennington III (wkennington) <william@wkennington.com>
Wulf Weich <wweich@users.noreply.github.com> <wweich@gmx.de> Wulf Weich (wweich) <wweich@users.noreply.github.com> <wweich@gmx.de>
Yannic A. <eipiminusone+github@gmail.com> <eipiminus1@users.noreply.github.com> Yannic A. (eipiminus1) <eipiminusone+github@gmail.com> <eipiminus1@users.noreply.github.com>

195
NICKS
View File

@ -1,89 +1,112 @@
# This file maps email addresses used in commits to nicks used the changelog. # This file maps email addresses used in commits to nicks used the changelog.
# It is auto generated from the AUTHORS file by script/authors.go.
acogdev <jake@acogdev.com> acogdev <jake@acogdev.com>
alex2108 <register-github@alex-graf.de> alessandro.g89 <alessandro.g89@gmail.com>
alessandro.g89 <alessandro.g89@gmail.com> alex2108 <register-github@alex-graf.de>
andersonvom <andersonvom@gmail.com> andersonvom <andersonvom@gmail.com>
andrew-d <andrew@du.nham.ca> andrew-d <andrew@du.nham.ca>
asdil12 <dominik@heidler.eu> asdil12 <dominik@heidler.eu>
AudriusButkevicius <audrius.butkevicius@gmail.com> AudriusButkevicius <audrius.butkevicius@gmail.com>
aviau <alexandre@alexandreviau.net> <aviau@debian.org> aviau <alexandre@alexandreviau.net>
bencurthoys <ben@bencurthoys.com> aviau <aviau@debian.org>
bigbear2nd <bigbear2nd@gmail.com> bencurthoys <ben@bencurthoys.com>
brbecker <brbecker@gmail.com> bigbear2nd <bigbear2nd@gmail.com>
brendanlong <self@brendanlong.com> brbecker <brbecker@gmail.com>
brgmnn <dan.arne.bergmann@gmail.com> <brgmnn@users.noreply.github.com> brendanlong <self@brendanlong.com>
bsidhom <bsidhom@gmail.com> brgmnn <dan.arne.bergmann@gmail.com>
buinsky <vix_booja@tut.by> brgmnn <brgmnn@users.noreply.github.com>
burkemw3 <mburke@amplify.com> <burkemw3@gmail.com> bsidhom <bsidhom@gmail.com>
calmh <jakob@nym.se> buinsky <vix_booja@tut.by>
canton7 <antony.male@gmail.com> burkemw3 <mburke@amplify.com>
Cathryne <cathryne.linenweaver@gmail.com> <Cathryne@users.noreply.github.com> burkemw3 <burkemw3@gmail.com>
cdata <chris@scriptolo.gy> calmh <jakob@nym.se>
cdhowie <me@chrishowie.com> canton7 <antony.male@gmail.com>
ceh <emil@hessman.se> Cathryne <cathryne.linenweaver@gmail.com>
cqcallaw <enlightened.despot@gmail.com> Cathryne <Cathryne@users.noreply.github.com>
dinosore <dinosore@dbrsoftware.co.uk> cdata <chris@scriptolo.gy>
dva <denisva@gmail.com> cdhowie <me@chrishowie.com>
dzarda <dzardacz@gmail.com> ceh <emil@hessman.se>
eipiminus1 <eipiminusone+github@gmail.com> <eipiminus1@users.noreply.github.com> cqcallaw <enlightened.despot@gmail.com>
facastagnini <federico.castagnini@gmail.com> dinosore <dinosore@dbrsoftware.co.uk>
filoozoom <philippe@schommers.be> dva <denisva@gmail.com>
frioux <frew@afoolishmanifesto.com> <frioux@gmail.com> dzarda <dzardacz@gmail.com>
fti7 <frank@isemann.name> eipiminus1 <eipiminusone+github@gmail.com>
gillisig <gilli@vx.is> eipiminus1 <eipiminus1@users.noreply.github.com>
hadogenes <szafar@linux.pl> facastagnini <federico.castagnini@gmail.com>
ironmig <kma1660@gmail.com> filoozoom <philippe@schommers.be>
jarlebring <jarlebring@gmail.com> frioux <frew@afoolishmanifesto.com>
jedie <github.com@jensdiemer.de> <git@jensdiemer.de> frioux <frioux@gmail.com>
jgke <jgke@jgke.fi> fti7 <frank@isemann.name>
jpjp <jamespatterson@operamail.com> <jpjp@users.noreply.github.com> gillisig <gilli@vx.is>
kamadak <kamada@nanohz.org> hadogenes <szafar@linux.pl>
KayoticSully <kayoticsully@gmail.com> ironmig <kma1660@gmail.com>
kilburn <kilburn@la3.org> jarlebring <jarlebring@gmail.com>
kluppy <kluppy@going2blue.com> jedie <github.com@jensdiemer.de>
kozec <kozec@kozec.com> jedie <git@jensdiemer.de>
kralo <max.schulze@online.de> jgke <jgke@jgke.fi>
krozycki <rozycki.karol@gmail.com> jpjp <jamespatterson@operamail.com>
letiemble <laurent.etiemble@gmail.com> <laurent.etiemble@monobjc.net> jpjp <jpjp@users.noreply.github.com>
LordLandon <lordlandon@gmail.com> kamadak <kamada@nanohz.org>
lkwg82 <lkwg82@gmx.de> KayoticSully <kayoticsully@gmail.com>
marcindziadus <dziadus.marcin@gmail.com> kc1212 <kc04bc@gmx.com>
kc1212 <kc1212@users.noreply.github.com>
kilburn <kilburn@la3.org>
kluppy <kluppy@going2blue.com>
kozec <kozec@kozec.com>
kralo <max.schulze@online.de>
kralo <kralo@users.noreply.github.com>
krozycki <rozycki.karol@gmail.com>
letiemble <laurent.etiemble@gmail.com>
letiemble <laurent.etiemble@monobjc.net>
lkwg82 <lkwg82@gmx.de>
LordLandon <lordlandon@gmail.com>
marcindziadus <dziadus.marcin@gmail.com>
marclaporte <marc@marclaporte.com> marclaporte <marc@marclaporte.com>
mateon1 <matin1111@wp.pl> marclaporte <marc@laporte.name>
mogwa1 <devriesb@gmail.com> mateon1 <matin1111@wp.pl>
moshen <moshen.colin@gmail.com> mogwa1 <devriesb@gmail.com>
Moter8 <moter8@gmail.com> moshen <moshen.colin@gmail.com>
mvdan <mvdan@mvdan.cc> Moter8 <moter8@gmail.com>
norgeous <daniel@harte.me> <daniel@danielharte.co.uk> <norgeous@users.noreply.github.com> mvdan <mvdan@mvdan.cc>
nrm21 <natemorrison@gmail.com> norgeous <daniel@harte.me>
Nutomic <me@nutomic.com> norgeous <daniel@danielharte.co.uk>
pascalj <github@pascalj.com> <mail@pascal-jungblut.com> norgeous <norgeous@users.noreply.github.com>
peterhoeg <peter@speartail.com> nrm21 <natemorrison@gmail.com>
philips <brandon@ifup.org> Nutomic <me@nutomic.com>
piobpl <piotrb10@gmail.com> pascalj <github@pascalj.com>
plouj <ploujj@gmail.com> pascalj <mail@pascal-jungblut.com>
pluby <phill.luby@newredo.com> peterhoeg <peter@speartail.com>
pyfisch <pyfisch@gmail.com> philips <brandon@ifup.org>
qbit <qbit@deftly.net> piobpl <piotrb10@gmail.com>
ralder <ralder@yandex.ru> plouj <ploujj@gmail.com>
Rewt0r <rewt0r@gmx.com> <Rewt0r@users.noreply.github.com> pluby <phill.luby@newredo.com>
rumpelsepp <stefan@sevenbyte.org> <rumpelsepp@sevenbyte.org> pyfisch <pyfisch@gmail.com>
sciurius <jvromans@squirrel.nl> qbit <qbit@deftly.net>
seehuhn <voss@seehuhn.de> ralder <ralder@yandex.ru>
simplypeachy <aD@simplypeachy.co.uk> <simplypeachy@users.noreply.github.com> Rewt0r <rewt0r@gmx.com>
snnd <dw@risu.io> Rewt0r <Rewt0r@users.noreply.github.com>
Stefan-Code <stefan.github@gmail.com> <Stefan.github@gmail.com> rumpelsepp <stefan@sevenbyte.org>
timabell <tim@timwise.co.uk> rumpelsepp <rumpelsepp@sevenbyte.org>
tnn2 <tnn@nygren.pp.se> sciurius <jvromans@squirrel.nl>
tojrobinson <tully@tojr.org> seehuhn <voss@seehuhn.de>
tpng <benny.tpng@gmail.com> simplypeachy <aD@simplypeachy.co.uk>
tylerbrazier <tyler@tylerbrazier.com> simplypeachy <simplypeachy@users.noreply.github.com>
uok <ueomkail@gmail.com> <uok@users.noreply.github.com> snnd <dw@risu.io>
veeti <veeti.paananen@rojekti.fi> Stefan-Code <stefan.github@gmail.com>
Vilbrekin <vilbrekin@gmail.com> Stefan-Code <Stefan.github@gmail.com>
wkennington <william@wkennington.com> timabell <tim@timwise.co.uk>
wsgcsysadmin <e.meitner@willystreet.coo> tnn2 <tnn@nygren.pp.se>
wweich <wweich@users.noreply.github.com> <wweich@gmx.de> tojrobinson <tully@tojr.org>
Zillode <zillode@zillode.be> tpng <benny.tpng@gmail.com>
zukoo <fxgsell@gmail.com> tylerbrazier <tyler@tylerbrazier.com>
uok <ueomkail@gmail.com>
uok <uok@users.noreply.github.com>
veeti <veeti.paananen@rojekti.fi>
Vilbrekin <vilbrekin@gmail.com>
wkennington <william@wkennington.com>
WSGCSysadmin <e.meitner@willystreet.coop>
wweich <wweich@users.noreply.github.com>
wweich <wweich@gmx.de>
Zillode <zillode@zillode.be>
zukoo <fxgsell@gmail.com>

View File

@ -11,7 +11,7 @@
<p translate>Copyright &copy; 2014-2016 the following Contributors:</p> <p translate>Copyright &copy; 2014-2016 the following Contributors:</p>
<div class="row"> <div class="row">
<div class="col-md-12" id="contributor-list"> <div class="col-md-12" id="contributor-list">
Jakob Borg, Audrius Butkevicius, Alexander Graf, Anderson Mesquita, Ben Schulz, Caleb Callaway, Lars K.W. Gohlke, Lode Hoste, Michael Ploujnikov, Philippe Schommers, Ryan Sullivan, Sergey Mishin, Stefan Tatschner, Aaron Bieber, Adam Piggott, Alessandro G., Alexandre Viau, Andrew Dunham, Antony Male, Arthur Axel fREW Schmidt, Bart De Vries, Ben Curthoys, Ben Sidhom, Benny Ng, Brandon Philips, Brendan Long, Brian R. Becker, Carsten Hagemann, Cathryne Linenweaver, Chris Howie, Chris Joel, Colin Kennedy, Daniel Bergmann, Daniel Harte, Daniel Martí, David Rimmer, Denis A., Dennis Wilson, Dominik Heidler, Elias Jarlebring, Emil Hessman, Erik Meitner, Federico Castagnini, Felix Ableitner, Felix Unterpaintner, Francois-Xavier Gsell, Frank Isemann, Gilli Sigurdsson, Jaakko Hannikainen, Jacek Szafarkiewicz, Jake Peterson, James Patterson, Jaroslav Malec, Jens Diemer, Jochen Voss, Johan Vromans, Karol Różycki, Kelong Cong, Ken'ichi Kamada, Kevin Allen, Laurent Etiemble, Lord Landon Agahnim, Marc Laporte, Marc Pujol, Marcin Dziadus, Mateusz Naściszewski, Matt Burke, Max Schulze, Michael Jephcote, Michael Tilli, Nate Morrison, Pascal Jungblut, Peter Hoeg, Phill Luby, Piotr Bejda, Scott Klupfel, Stefan Kuntz, Tim Abell, Tobias Nygren, Tomas Cerveny, Tully Robinson, Tyler Brazier, Veeti Paananen, Victor Buinsky, Vil Brekin, William A. Kennington III, Wulf Weich, Yannic A. Jakob Borg, Audrius Butkevicius, Alexander Graf, Anderson Mesquita, Ben Schulz, Caleb Callaway, Daniel Harte, Lars K.W. Gohlke, Lode Hoste, Michael Ploujnikov, Philippe Schommers, Ryan Sullivan, Sergey Mishin, Stefan Tatschner, Aaron Bieber, Adam Piggott, Alessandro G., Alexandre Viau, Andrew Dunham, Antony Male, Arthur Axel fREW Schmidt, Bart De Vries, Ben Curthoys, Ben Sidhom, Benny Ng, Brandon Philips, Brendan Long, Brian R. Becker, Carsten Hagemann, Cathryne Linenweaver, Chris Howie, Chris Joel, Colin Kennedy, Daniel Bergmann, Daniel Martí, David Rimmer, Denis A., Dennis Wilson, Dominik Heidler, Elias Jarlebring, Emil Hessman, Erik Meitner, Federico Castagnini, Felix Ableitner, Felix Unterpaintner, Francois-Xavier Gsell, Frank Isemann, Gilli Sigurdsson, Jaakko Hannikainen, Jacek Szafarkiewicz, Jake Peterson, James Patterson, Jaroslav Malec, Jens Diemer, Jochen Voss, Johan Vromans, Karol Różycki, Kelong Cong, Ken'ichi Kamada, Kevin Allen, Laurent Etiemble, Lord Landon Agahnim, Marc Laporte, Marc Pujol, Marcin Dziadus, Mateusz Naściszewski, Matt Burke, Max Schulze, Michael Jephcote, Michael Tilli, Nate Morrison, Pascal Jungblut, Peter Hoeg, Phill Luby, Piotr Bejda, Scott Klupfel, Stefan Kuntz, Tim Abell, Tobias Nygren, Tomas Cerveny, Tully Robinson, Tyler Brazier, Veeti Paananen, Victor Buinsky, Vil Brekin, William A. Kennington III, Wulf Weich, Yannic A.
</div> </div>
</div> </div>
<hr/> <hr/>

View File

@ -13,6 +13,7 @@ package main
import ( import (
"bytes" "bytes"
"fmt"
"io/ioutil" "io/ioutil"
"log" "log"
"math" "math"
@ -25,8 +26,26 @@ import (
const htmlFile = "gui/default/syncthing/core/aboutModalView.html" const htmlFile = "gui/default/syncthing/core/aboutModalView.html"
var (
nicknameRe = regexp.MustCompile(`\(([^\s]*)\)`)
emailRe = regexp.MustCompile(`<([^\s]*)>`)
)
const authorsHeader = `# This is the official list of Syncthing authors for copyright purposes.
# The format is:
#
# Name Name Name (nickname) <email1@example.com> <email2@example.com>
#
# The NICKS list is auto generated from this file.
`
const nicksHeader = `# This file maps email addresses used in commits to nicks used the changelog.
# It is auto generated from the AUTHORS file by script/authors.go.
`
type author struct { type author struct {
name string name string
nickname string
emails []string emails []string
commits int commits int
log10commits int log10commits int
@ -50,36 +69,75 @@ func main() {
if err := ioutil.WriteFile(htmlFile, bs, 0644); err != nil { if err := ioutil.WriteFile(htmlFile, bs, 0644); err != nil {
log.Fatal(err) log.Fatal(err)
} }
// Write AUTHORS file
sort.Sort(byName(authors))
out, err := os.Create("AUTHORS")
if err != nil {
log.Fatal(err)
}
fmt.Fprintf(out, "%s\n", authorsHeader)
for _, author := range authors {
fmt.Fprintf(out, "%s", author.name)
if author.nickname != "" {
fmt.Fprintf(out, " (%s)", author.nickname)
}
for _, email := range author.emails {
fmt.Fprintf(out, " <%s>", email)
}
fmt.Fprintf(out, "\n")
}
out.Close()
// Write NICKS file
sort.Sort(byNick(authors))
out, err = os.Create("NICKS")
if err != nil {
log.Fatal(err)
}
fmt.Fprintf(out, "%s\n", nicksHeader)
for _, author := range authors {
if author.nickname == "" {
continue
}
for _, email := range author.emails {
fmt.Fprintf(out, "%s <%s>\n", author.nickname, email)
}
}
out.Close()
} }
func getAuthors() []author { func getAuthors() []author {
bs := readAll("AUTHORS") bs := readAll("AUTHORS")
lines := strings.Split(string(bs), "\n") lines := strings.Split(string(bs), "\n")
var authors []author var authors []author
nameRe := regexp.MustCompile(`(.+?)\s+<`)
authorRe := regexp.MustCompile(`<([^>]+)>`)
for _, line := range lines { for _, line := range lines {
m := nameRe.FindStringSubmatch(line) if len(line) == 0 || line[0] == '#' {
if len(m) < 2 {
continue
}
name := m[1]
ms := authorRe.FindAllStringSubmatch(line, -1)
if len(ms) == 0 {
continue continue
} }
var emails []string fields := strings.Fields(line)
for i := range ms { var author author
emails = append(emails, ms[i][1]) for _, field := range fields {
if m := nicknameRe.FindStringSubmatch(field); len(m) > 1 {
author.nickname = m[1]
} else if m := emailRe.FindStringSubmatch(field); len(m) > 1 {
author.emails = append(author.emails, m[1])
} else {
if author.name == "" {
author.name = field
} else {
author.name = author.name + " " + field
}
}
} }
a := author{ authors = append(authors, author)
name: name,
emails: emails,
}
authors = append(authors, a)
} }
return authors return authors
} }
@ -141,3 +199,27 @@ func (l byContributions) Less(a, b int) bool {
} }
func (l byContributions) Swap(a, b int) { l[a], l[b] = l[b], l[a] } func (l byContributions) Swap(a, b int) { l[a], l[b] = l[b], l[a] }
type byName []author
func (l byName) Len() int { return len(l) }
func (l byName) Less(a, b int) bool {
aname := strings.ToLower(l[a].name)
bname := strings.ToLower(l[b].name)
return aname < bname
}
func (l byName) Swap(a, b int) { l[a], l[b] = l[b], l[a] }
type byNick []author
func (l byNick) Len() int { return len(l) }
func (l byNick) Less(a, b int) bool {
anick := strings.ToLower(l[a].nickname)
bnick := strings.ToLower(l[b].nickname)
return anick < bnick
}
func (l byNick) Swap(a, b int) { l[a], l[b] = l[b], l[a] }