summaryrefslogtreecommitdiffstats
path: root/format-patch.sh
blob: e3dfb87ca7662a97b80c1f8be17077b1e9c0e910 (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
59
60
#!/bin/bash


function is_num()
{
    local num;

    num="$1";

    [ -z "$(echo $num | sed -e 's/[0-9]//g')" ]
}


function guess_branch()
{
    local branch;
    local src_branch;

    branch=$(git branch | grep '*' | cut -f2 -d' ');

    if [ $branch = "master" ] ; then
        src_branch="master";
    else
        src_branch=$(cat .git/logs/refs/heads/$branch | head -n 1 \
            | sed -r -e 's/.*( [^ ]*)$/\1/g' | cut -f2 -d/);
    fi

    echo $src_branch
}


function main()
{
    local branch;
    local bug;

    branch=$(guess_branch);
    echo
    echo "Patches are always to be associated with a bug ID. If there is no   "
    echo "bug filed in bugzilla for this patch, it is highly suggested to file"
    echo "a new bug with a description and reasoning of this patchset. If this"
    echo "is a new feature, then file a new enhancement bug with a brief      "
    echo "summary of the feature as the description."
    echo
    echo -n "Enter bug ID (from http://bugs.gluster.com/): "
    read bug;

    [ -z "$bug" ] || is_num $bug || {
        log "bug ID should be a valid bug number";
        exit;
    }

    if [ -z "$bug" ]; then
        git format-patch -s "$@";
    else
        git format-patch -s --subject-prefix="PATCH BRANCH:release-2.0 BUG:$bug" "$@";
    fi
}

main "$@"