当前位置:   article > 正文

git代码量统计.sh脚本_git统计每月代码量

git统计每月代码量

脚本统计的是当月时间范围修改,需要放置到仓库的上一级目录运行,或者根据实际情况修改代码。

运行情况如下:

代码如下:

  1. #!/bin/bash
  2. # 提取当前年份和月份
  3. year=$(date +%Y)
  4. month=$(date +%m)
  5. # 计算本月的第一天和最后一天
  6. first_day="${year}-${month}-01"
  7. last_day=$(date -d "${first_day} +1 month -1 day" +%Y-%m-%d)
  8. # 命令提示符的默认配置
  9. GREEN='\033[0;32m' # 绿色
  10. PURPLE='\033[0;35m' # 紫色
  11. YELLOW='\033[0;33m' # 黄色
  12. AQUA='\033[0;36m' # 青色
  13. NC='\033[0m' # 重置颜色
  14. username=$(whoami)
  15. hostname=$(hostname)
  16. msystem=$MSYSTEM
  17. com_printf_format="新增行数:%s,删除行数:%s,总行数:%s"
  18. # 仓库全路径
  19. function getPath() {
  20. local path=$(pwd)
  21. if [[ $path == */ ]]; then
  22. path=${path%?} # 删除最后一个字符
  23. fi
  24. echo $path
  25. }
  26. # 由于无法直接获取命令行提示符内容,通过参数拼接模拟命令行提示符
  27. function getPrompt() {
  28. echo "$GREEN$username@$hostname $PURPLE$msystem $YELLOW$(getPath) $AQUA($(git rev-parse --abbrev-ref HEAD))$NC"
  29. }
  30. # git命令复用
  31. function getCmdGit() {
  32. echo "git log --all --author=$(git config user.name) --numstat --pretty=tformat: --after=$first_day --before=$last_day"
  33. }
  34. # 显示的命令内容
  35. function getShowCmd() {
  36. echo "$ $(getCmdGit) | awk '{ adds += \$1; subs += \$2; loc += \$1 + \$2 } END { printf \"$com_printf_format\\\n\", adds, subs, loc }'"
  37. }
  38. # 执行命令,过滤掉无添加代码的仓库,打印代码统计结果
  39. function runCMD() {
  40. $(getCmdGit) | awk -v title="$(getPrompt)" -v show_cmd="$(getShowCmd)" -v com_printf_format="$com_printf_format" '
  41. { adds += $1; subs += $2; loc += $1 + $2 }
  42. END { if (adds > 0) { printf "%s\n%s\n'$com_printf_format'\n\n", title, show_cmd, adds, subs, loc } }'
  43. }
  44. #遍历当前路径下文件
  45. for dir in `ls`
  46. do
  47. # 判断是否为目录
  48. if [ -d $dir/.git ]; then
  49. cd $dir
  50. runCMD
  51. cd ..
  52. fi
  53. done
  54. # 添加换行
  55. echo -e "\n"
  56. # 等待用户按下回车键
  57. read -p "Press enter to exit..."

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/417860
推荐阅读
相关标签
  

闽ICP备14008679号