summaryrefslogtreecommitdiff
path: root/git/commit.sh
blob: cc05cf587c73bfdd1910817e20c9e09d853595f5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#! /bin/sh

# Assume this script never run via PATH.
#
self=`realpath $0`
. `dirname $self`/modules

wd=`pwd`

if [ "$1" = "-i" ]; then
  add=n
else
  add=y
fi

if [ "$EDITOR" = "" ]; then
  echo "no editor specified with the EDITOR variable" 1>&2
  exit 1
fi

msg_file=`mktemp -p /tmp`
$EDITOR "$msg_file"

if [ $? -ne 0 ]; then
  echo "$EDITOR failed" 1>&2
  rm -f $msg_file
  exit 1
fi

if test ! -s "$msg_file"; then
  echo "commit message is empty" 1>&2
  rm -f $msg_file
  exit 1
fi

for i in $modules; do
  echo "commit $i" 1>&2
  cd $i
  if [ "$add" = "y" ]; then
    git add .

    if [ $? -ne 0 ]; then
      echo "add FAILED" 1>&2
      exit 1
    fi

  fi
  git commit -F $msg_file

  if [ $? -ne 0 ]; then
    echo "commit FAILED" 1>&2
    exit 1
  fi

  cd $wd
done

rm -f $msg_file