Advertisement
Guest User

svn_log

a guest
Aug 3rd, 2013
199
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.68 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. usage='usage:
  4.  ./svn_log <days>    OR    ./svn_log <date>
  5.  
  6. examples:
  7.  ./svn_log 10        OR    ./svn_log 2013-08-02'
  8.  
  9. # svn log в переменную чтобы обойтись одним вызовом
  10. svn_log=`svn log`
  11.  
  12.  
  13. # 1. получаем входной параметр - количество дней ($days) или дата в формате YYYY-MM-DD ($date)
  14. param=$1
  15. if [ -n "$param" ]; then
  16.     if [[ "$param" =~ ^[0-9]+$ ]] ; then
  17.         days="$param"
  18.     elif [[ "$param" =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]]; then
  19.         date="$param"
  20.     else
  21.         echo "$usage"
  22.         exit 1
  23.     fi
  24. else
  25.     days=7 # по умолчанию показываем статистику коммитов за прошедшую неделю
  26. fi
  27.  
  28.  
  29. # 2. запуск без параметра или с числовым параметром - статистика коммитов по дням
  30. if [ -n "$days" ]; then
  31.     for (( i=0; i<$days; i++ ))
  32.     do
  33.         # получаем дату каждого для в формате YYYY-MM-DD
  34.         day=`date +"%Y-%m-%d" --date "$end -$i day"`
  35.  
  36.         # используем полученную дату для поиска по svn log
  37.         num_commits=$(echo "$svn_log" | grep "$day" | wc -l)
  38.        
  39.         # вывод результатов
  40.         echo -ne "$day "
  41.         for (( c=0; c<$num_commits; c++ )); do
  42.             echo -ne '#'
  43.         done
  44.         echo ''
  45.     done
  46. fi
  47.  
  48.  
  49. # 3. запуск с параметром даты - перечень коммитов в указанный день
  50. if [ -n "$date" ]; then
  51.     echo "$svn_log" | grep -A 2 -B 1 "$date" | awk "NR%4==0"
  52. fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement