From 786f4815770c00540c9543683190f6c8f089f970 Mon Sep 17 00:00:00 2001 From: nisse Date: Wed, 15 Jun 2016 00:06:24 -0700 Subject: [PATCH] New misc scripts, header_usage.sh and author_line_count.sh. NOTRY=True BUG= Review-Url: https://codereview.webrtc.org/2061683002 Cr-Commit-Position: refs/heads/master@{#13148} --- webrtc/tools/author_line_count.sh | 28 ++++++++++++++++++++++++++++ webrtc/tools/header_usage.sh | 23 +++++++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100755 webrtc/tools/author_line_count.sh create mode 100755 webrtc/tools/header_usage.sh diff --git a/webrtc/tools/author_line_count.sh b/webrtc/tools/author_line_count.sh new file mode 100755 index 0000000000..8d67a6d8ea --- /dev/null +++ b/webrtc/tools/author_line_count.sh @@ -0,0 +1,28 @@ +#!/bin/bash + +# Copyright (c) 2016 The WebRTC project authors. All Rights Reserved. +# +# Use of this source code is governed by a BSD-style license +# that can be found in the LICENSE file in the root of the source +# tree. An additional intellectual property rights grant can be found +# in the file PATENTS. All contributing project authors may +# be found in the AUTHORS file in the root of the source tree. + +# This script counts net line count contributions by author. Besides +# amusement, the value of these stats are of course questionable. + +git log "$@" --pretty=format:%ae --shortstat \ + | sed '/^ /s/,/\n/g' \ + | gawk ' +/^[^ ]/ { + /* Some author "email addresses" have a trailing @svn-id, strip that out. */ + author = gensub(/^([^@]*@[^@]*).*/, "\\1", "", $1); +} +/^ .*insertion/ { total[author] += $1 } +/^ .*deletion/ { total[author] -= $1 } +END { for (author in total) { + print total[author], author + } +} +' \ + | sort -nr diff --git a/webrtc/tools/header_usage.sh b/webrtc/tools/header_usage.sh new file mode 100755 index 0000000000..6bb890136b --- /dev/null +++ b/webrtc/tools/header_usage.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +# Copyright (c) 2016 The WebRTC project authors. All Rights Reserved. +# +# Use of this source code is governed by a BSD-style license +# that can be found in the LICENSE file in the root of the source +# tree. An additional intellectual property rights grant can be found +# in the file PATENTS. All contributing project authors may +# be found in the AUTHORS file in the root of the source tree. + +# This script is run in a git repository. It lists all header files, +# sorted by the number of other files where the file name of the file +# occurs. It is intentionally not limited to only source files, and +# there may be some false hits because we search only for the file +# part (sans directory). It is quite slow. +# +# Headers close to the top of the list are candidates for removal. + +git ls-files '*.h' '*.hpp' | while read header ; do + name="$(basename "${header}")" + count="$(git grep -l -F "${name}" | wc -l)" + echo "${count}" "${header}" +done | sort -n