Подводить итоги дня и недели по написанию кода можно с помощью одного довольно простого скрипта, который будет отправлять вам на почту подборку ваших коммитов за это время. Конечно, вы можете предложить лучшие решения, но если не хочется долго думать, то используйте эту заготовку.
В cron добавляем следующее (crontab -e)
0 22 * * 1,2,3,4,5 sh /path/to/git_changes.sh # Sends 5 PM EST if server time is UTC
0 21 * * 5 sh /path/to/git_changes.sh -w # Sends Friday @ 4PM EST if server time is UTC
А в сам скрипт git_changes.sh
#!/usr/bin/env bash
PROJECTS_DIR=/path/to/projects
RECIPIENT=user@example.com
if [ "$1" = "-w" ]; then
mailing="weekly"
since="1.week"
format="iso"
else
mailing="daily"
since="1.day"
format="relative"
fi
output=""
for git in $(find $PROJECTS_DIR/ -maxdepth 2 -name "*.git"); do
gitdir=$(dirname "$git");
cd $gitdir
changes=$(git --no-pager log --date=$format --pretty=format:"%cd: %s" --decorate=short --since=$since);
if [ "$changes" ]; then
output="$output\n$gitdir:\n$changes\n\n"
fi
done
if [ "$output" ]; then
if [ "$mailing" = "weekly" ]; then
echo -e "$output" | mail -s "Weekly git commits update for week ending $(date +'%b %d')" $RECIPIENT
else
echo -e "$output" | mail -s "git commits for $(date +'%A, %b %d')" $RECIPIENT
fi
fi
ТОП ИИ для программистов в 2025 году. Показываем основные виды нейросетей для программирования. Рассматриваем основные плюсы и минусы каждого AI ✔ Tproger
Образование растёт, но критическое мышление буксует. Почему «самые умные» поколения легко попадаются на дезинформацию? Исследуем парадокс цифрового невежества.