Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1181672
  • 博文数量: 181
  • 博客积分: 4968
  • 博客等级: 上校
  • 技术积分: 1867
  • 用 户 组: 普通用户
  • 注册时间: 2008-01-13 21:52
文章分类

全部博文(181)

文章存档

2015年(2)

2013年(6)

2012年(22)

2011年(41)

2010年(27)

2009年(51)

2008年(32)

我的朋友

分类: LINUX

2011-10-12 14:35:10

#! /bin/bash

#
# 计算有效变更代码量的脚本
# 包括注释,但不包括新增的空行
#

version() {
OS=`uname -o`
echo "Source_counter ($OS) 0.0.1"
echo " tony bai ()"
}

usage() {
echo "usage: source-counter [-t SVN_REPOSITORY_URL] [-s START_REVISION]"
echo " [-e END_REVISION] [-u USER_NAME]"
echo " [-p PASSWD]"
echo " source-counter [-v|-h]"
echo
echo " -t, 目标SVN库地址"
echo " -s, 起始修订号"
echo " -e, 结束修订号"
echo " -u, svn帐号"
echo " -p, svn密码"
echo " -h, 帮助"
echo " -v, 版本信息"
}

if [ $# -lt 2 ]; then
usage
exit 1
fi

while getopts "t:s:e:u:p:vh" opt; do
case $opt in
t) target=$OPTARG;;
s) start_revision=$OPTARG;;
e) end_revision=$OPTARG;;
u) user=$OPTARG;;
p) passwd=$OPTARG;;
v) version; exit 1;;
h) usage; exit 1;;
esac
done

if [ -z $target ]; then
echo "请输入目标SVN库地址!"
exit 1
fi

if [ -z $start_revision ]; then
echo "请输入起始修订号!"
exit 1
fi

if [ -z $end_revision ]; then
echo "请输入终止修订号!"
exit 1
fi

TEMPFILE=temp.log
USERNAME=${user:-}
PASSWD=${passwd:-}

svn diff -r$start_revision:$end_revision $target $USERNAME $PASSWD > $TEMPFILE
add_lines_count=`grep "^+" $TEMPFILE|grep -v "^+++"|sed 's/^.//'|sed '/^$/d'|wc -l`
rm -fr $TEMPFILE
echo "the actually incremental source code lines = $add_lines_count"

阅读(1749) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

leanderlee2011-10-13 09:16:00

#统计源代码行数
find . -name "*.[ch]" -o -name "*.cpp" -exec cat {} \; | sed '/^$\|\/\/\|\/\*|\*\//d' | wc -l