Игра Яндекс Практикума
Игра Яндекс Практикума
Игра Яндекс Практикума

Простая автоматическая напоминалка с итогами вашей разработки за день и неделю в виде списка git-коммитов

Отредактировано

3К открытий3К показов

Подводить итоги дня и недели по написанию кода можно с помощью одного довольно простого скрипта, который будет отправлять вам на почту подборку ваших коммитов за это время. Конечно, вы можете предложить лучшие решения, но если не хочется долго думать, то используйте эту заготовку.

В 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
		

Код также можно забрать с GitHub Gist.

Следите за новыми постами
Следите за новыми постами по любимым темам
3К открытий3К показов