summaryrefslogtreecommitdiff
path: root/.zsh/functions/cci
blob: dc46f23680d28f9988e9935af7e0cb84babb6ff9 (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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
# Commit a new config change
# Works only for simple cases
ask ()
{
    echo -n ${fg_bold[white]}"Is this ok? [y/n] "${reset_color}

    if ! read -q; then
        echo
        echo "I would have done the wrong thing ... aborting!"
        return 2
    else
        echo
    fi
}

log ()
{
    echo ${fg_bold[white]}">> $1"${reset_color}
}

TRAPEXIT ()
{
    # cleanup
    unfunction ask log
}

# ignore a -m 
[[ $1 == "-m" ]] && shift

if [[ $# == 0 ]]; then
    echo "No message given. Aborting."
    return 1
fi

local message=$1
local tok=__cci__
local stg_v=$(python -c 'from stgit.builtin_version import version; print version')

# bail out on errors with the python thing
(( $? )) && return

pushd -q ~

local indexed="$(config status --porcelain | grep -v '^ ')"

if [[ -n $indexed ]]; then
    log "Stuff in index -- only commiting this"
    echo "$indexed"
    ask || return 2
else
    log "Nothing in index -- commiting everything which has changed"
    echo "$(config status)"

    ask || return 2
    config add --update
fi

cstg diff --diff-opts --cached
ask || return 2

log "Creating new patch"
cstg new $tok -m "$message"

log "Refreshing"
cstg refresh --index

if [[ -z $(cstg files) ]]; then
    echo
    echo "Ehm - this patch is empty. Narf. Aborting!"
    echo "Deleting useless patch"
    cstg del $tok
    return 3
fi

log "Committing"
cstg commit $tok || return

# from 0.16 onwards stg repushes the patches ... pop them again
# this is needed to make the `config push` work
if is-at-least 0.16 $stg_v; then
    log "Popping patches, stg thought it had to re-apply"
    cstg pop --all --keep || return
fi

if [[ -n $(cstg series --applied) ]]; then
    echo
    echo "Urgs! Something went wrong. There are still patches applied."
    echo "Clean up for yourself. Aborting here!"
    return 4
fi

log "Pushing to remote"
config push || return

log "Re-apply patches"
cstg push --all --keep || return

log "Done"

popd -q

# vim: ft=zsh
/td>René 'Necoro' Neumann1-0/+3 2011-02-15Add content-typeRené 'Necoro' Neumann1-0/+1 2011-02-07Update copyrightRené 'Necoro' Neumann1-1/+1 2011-02-07Instead of overloading the normal 'render' function, add a 'render_utf8' methodRené 'Necoro' Neumann3-6/+3 2011-02-07missed oneRené 'Necoro' Neumann1-1/+1 2011-02-07unicode aware formRené 'Necoro' Neumann1-1/+10 2011-02-07Use Unicode as expectedRené 'Necoro' Neumann1-2/+2 2010-08-26but not editRené 'Necoro' Neumann1-1/+8 2010-08-26Make add redirect to addRené 'Necoro' Neumann1-1/+1 2010-07-27Add datepicker to add/editRené 'Necoro' Neumann3-3/+23 2010-07-27Fix sizes of datepickerRené 'Necoro' Neumann1-3/+3 2010-07-27Add jQuery UI -- DatepickerRené 'Necoro' Neumann17-0/+1168 2010-07-27Add category manipulation supportRené 'Necoro' Neumann10-6/+85 2010-07-26Konstante KostenRené 'Necoro' Neumann1-1/+1 2010-07-26Added link to edit the constant stuffRené 'Necoro' Neumann1-1/+1 2010-07-26Added addition and modification of constant stuffRené 'Necoro' Neumann3-8/+106 2010-07-05Only show right nav arrow, if the following month is not in the futureRené 'Necoro' Neumann2-14/+20 2010-07-05Add month navigationRené 'Necoro' Neumann6-5/+35 2010-07-05Add iconRené 'Necoro' Neumann2-1/+2 2010-07-05change cursorRené 'Necoro' Neumann1-0/+5 2010-07-05Some restructuringRené 'Necoro' Neumann3-28/+45 2010-07-05Closed/Open imagesRené 'Necoro' Neumann4-0/+146 2010-05-25Move page templates into their own folderRené 'Necoro' Neumann5-5/+7 2010-05-25Added the ability to edit an expenseRené 'Necoro' Neumann3-9/+34 2010-05-12FixRené 'Necoro' Neumann1-2/+2 2010-05-12Show more detailsRené 'Necoro' Neumann4-19/+42 2010-05-12Create new form each timeRené 'Necoro' Neumann1-24/+26 2010-05-10Fix redirect in AddRené 'Necoro' Neumann1-1/+1 2010-05-10Added the 'add expense' stuffRené 'Necoro' Neumann4-3/+69