summaryrefslogtreecommitdiff
path: root/.zsh/functions/cci
blob: b4af7735542bf05e25bbdb0f6366a7a8f3a1c2da (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=$(python2 -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
afea&follow=1'>Add default configRené 'Necoro' Neumann3-1/+50 2010-08-03Removed revisionRené 'Necoro' Neumann1-0/+0 2010-08-03Added init script for radicaleRené 'Necoro' Neumann4-2/+56 2010-07-30Added radicaleRené 'Necoro' Neumann2-0/+29 2010-07-29New packagesRené 'Necoro' Neumann1-0/+0 2010-07-29New packagesRené 'Necoro' Neumann5-0/+75 2010-06-30Fix manifestRené 'Necoro' Neumann1-1/+1 2010-06-30moderncv 0.6 --> 0.10René 'Necoro' Neumann2-1/+1 2010-04-08Bumped lighttpdRené 'Necoro' Neumann5-252/+6 2010-04-01Added gpg and server useflag for fwknopRené 'Necoro' Neumann2-27/+47 2010-04-01Add fwknopRené 'Necoro' Neumann8-0/+133 2010-03-27Fix OpenSSL issue in lighttpdRené 'Necoro' Neumann3-1/+15 2010-03-26add patched lighttpdRené 'Necoro' Neumann17-0/+1208 2010-03-19Bumped app-text/highlightRené 'Necoro' Neumann2-0/+53 2010-03-02Added newer PolyML version for IsabelleRené 'Necoro' Neumann2-0/+31 2010-01-05Removed bpythonRené 'Necoro' Neumann2-33/+0 2009-11-11stgit-0.15 in portage nowRené 'Necoro' Neumann2-59/+0 2009-11-10Add stgit-0.15René 'Necoro' Neumann2-0/+59 2009-11-09Emacs stuff now in PortageRené 'Necoro' Neumann8-2222/+0 2009-11-07Emacs with fixed gtk menusRené 'Necoro' Neumann8-0/+2222 2009-10-27Remove old hibernate-script version.René 'Necoro' Neumann2-72/+0 2009-10-25Rename .bzrignore to .gitignoreRené 'Necoro' Neumann1-0/+0 2009-10-25Rename repo from 'necoro_private' to 'necoro'René 'Necoro' Neumann1-1/+1 2009-10-25Remove own hplip versionRené 'Necoro' Neumann4-210/+0 2009-10-25Remove own ctags versionRené 'Necoro' Neumann7-402/+0 2009-10-02Do not create isabelle desktop entryRené 'Necoro' Neumann2-2/+1 2009-09-28Add isabelle ebuildRené 'Necoro' Neumann3-0/+115 2009-09-05Removed glade ebuild. Newer versions included in treeRené 'Necoro' Neumann2-47/+0