[DRE-commits] [scripts] 01/01: find-inactive-contributors: add fullname to output

zeha at debian.org zeha at debian.org
Fri Jul 1 18:19:17 UTC 2016


This is an automated email from the git hooks/post-receive script.

zeha pushed a commit to branch master
in repository scripts.

commit 253b887ed2023153934f9d0513a9c24573955feb
Author: Christian Hofstaedtler <christian at hofstaedtler.name>
Date:   Fri Jul 1 20:19:13 2016 +0200

    find-inactive-contributors: add fullname to output
    
    Also switch to CSV module for printing, and deal with encoding issues.
---
 find-inactive-contributors | 31 +++++++++++++++++++++----------
 1 file changed, 21 insertions(+), 10 deletions(-)

diff --git a/find-inactive-contributors b/find-inactive-contributors
index 799bbd4..26398cc 100755
--- a/find-inactive-contributors
+++ b/find-inactive-contributors
@@ -13,6 +13,7 @@
 require 'json'
 require 'etc'
 require 'time'
+require 'csv'
 
 DATAFILE = 'find-inactive-contributors.data'
 TIME_ZERO = Time.at(0)
@@ -36,8 +37,11 @@ def build_uid_map
   uid_map = Hash.new
   all_users = Etc.getgrnam(GROUP).mem
   all_users.each do |username|
-    u = Etc.getpwnam(username).uid
-    uid_map[u] = username
+    u = Etc.getpwnam(username)
+    uid_map[u.uid] = {
+      'username' => username,
+      'gecos' => u.gecos.force_encoding('utf-8'),
+    }
   end
   uid_map
 end
@@ -51,7 +55,7 @@ def build_data
   #repos = [repos[0]]  # limit work for now
   repos.each do |r| walk_git(r, data[:newest]) end
   puts "newest => #{data[:newest].inspect}"
-  File.write(DATAFILE, JSON.generate(data))
+  File.write(DATAFILE, JSON.generate(data).encode('utf-8'))
   puts "#{DATAFILE} has been written, run 'find-inactive-contributors info' for results."
 end
 
@@ -64,21 +68,28 @@ def print_info
     :users => data_json["users"],
     :newest => data_json["newest"],
   }
-  puts "email;last_contribution_date"
   contribs = []
-  data[:users].each do |uid, username|
+  data[:users].each do |uid, userdata|
+    username = userdata['username']
+    gecos = userdata['geocs']
     contrib_date = data[:newest][uid]
-    if contrib_date.nil? or contrib_date == TIME_ZERO then
-      puts "#{username}@users.alioth.debian.org;never"
+    if contrib_date.nil? then
+      contrib_date = TIME_ZERO
     else
-      contribs << [Time.parse(contrib_date), username]
+      contrib_date = Time.parse(contrib_date)
     end
+    contribs << [contrib_date, userdata]
   end
   contribs.sort_by! { |c| c[0] }
   cutoff = (Date.today - DAYS_INACTIVE).to_time
-  contribs.each do |contrib_date, username|
+  puts ["gecos", "username", "email", "last_contribution_date"].to_csv
+  contribs.each do |contrib_date, userdata|
     if contrib_date < cutoff then
-      puts "#{username}@users.alioth.debian.org;#{contrib_date}"
+      contrib_date_text = contrib_date.to_s
+      contrib_date_text = 'never' if contrib_date == TIME_ZERO
+      puts [userdata['gecos'], userdata['username'],
+            "#{userdata['username']}@users.alioth.debian.org",
+            contrib_date_text].to_csv
     end
   end
 end

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-ruby-extras/scripts.git



More information about the Pkg-ruby-extras-commits mailing list