Записи
Проекты / Технологии / Скрипты / Сниппеты
Форум

Скрипты commit-or-notify

#git #mail

Попытаться закоммитить репозиторий, а если не получается - отправить письмо админу

#!/bin/bash

if [ $(git status --porcelain | wc -l ) != 0 ] ;
then
  git add . --all
  git commit -m "$(hostname):$(pwd) update - $(date)"
fi

git pull

if [ $(git status --porcelain | wc -l ) != 0 ] ;
then
  TEMP=$(mktemp)
  echo "Вот что говорит \`git status\`:" >> $TEMP
  git status --porcelain >> $TEMP
  cat $TEMP | mail \
    -a "From: $MSMTP_FROM" \
    -s "Не получается в каталоге '$(hostname):$(pwd)' безболезненно сделать \`git pull\`" \
    $1

  rm $TEMP
  git add . --all
  git reset --hard HEAD
else
  git push
fi