forked from simonexmachina/git-tools
-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathgit-common.sh
More file actions
56 lines (53 loc) · 1.63 KB
/
Copy pathgit-common.sh
File metadata and controls
56 lines (53 loc) · 1.63 KB
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
#!/bin/bash
# Assume that this script has been imported as a submodule, get top level of parent git repo.
GIT_TOOLS_DIR="$( cd -P "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
GIT_TOOLS_HOOKS="$GIT_TOOLS_DIR/../git-tools-hooks"
DIR="$( cd -P "$( dirname "${BASH_SOURCE[0]}" )/../" && git rev-parse --show-toplevel )"
export CHANGELOG_FILE="$DIR/CHANGELOG.md"
export VERSION_FILE="$DIR/VERSION"
CHANGE_FILE="$DIR/._changed-files.txt"
prependToFile() {
echo -e "$2" | cat - $1 > .git-hotfix-tmp
mv .git-hotfix-tmp $1
}
prependToChangeLog() {
prependToFile "$CHANGELOG_FILE" "$1"
echo "Please review the CHANGELOG.md before continuing"
$EDITOR $CHANGELOG_FILE
}
getChangedFiles() {
(git diff --name-only --diff-filter=ACDMRTUX > $CHANGE_FILE \
&& git diff --cached --name-only --diff-filter=ACDMRTUX >> $CHANGE_FILE) \
|| exit $?
CHANGED_FILES=`cat $CHANGE_FILE`
rm $CHANGE_FILE
echo $CHANGED_FILES
}
getCurrentBranch() {
git branch | sed -n -e 's/^\* \(.*\)/\1/p'
}
updateVersion() {
echo "### Current VERSION file has version `cat VERSION`"
echo "### Calling git fetch to get VERSION from origin..."
git fetch
echo "### Current version: `git show origin/master:VERSION`"
}
getCommitMessagesSince() {
git log '--pretty=format:%B' --no-merges $1.. \
| grep -v "Updated $VERSION_FILE and $CHANGELOG_FILE" \
| perl -p -e 's/^\n//' \
| sed -e 's/^\([^-]\)/- \1/g' \
| sed -e 's/^\(- \)#/\1\\#/g'
}
if [ "$1" = "-h" ]; then
printUsage
exit
fi
if [ -f $CHANGE_FILE ]; then
echo "ERROR: $CHANGE_FILE exists"
exit 1
fi
if [ ! -f $CHANGELOG_FILE -o ! -f $VERSION_FILE ]; then
echo "ERROR: $VERSION_FILE and $CHANGELOG_FILE must exist"
exit 1
fi