diff options
author | René Neumann <rene.neumann@in.tum.de> | 2011-08-10 20:22:31 +0200 |
---|---|---|
committer | René Neumann <rene.neumann@in.tum.de> | 2011-08-10 20:22:32 +0200 |
commit | aa53962b9540dce996b183a5cd6e14274cfeec0f (patch) | |
tree | b873192164f81a7714e75c5f30239944e384cc99 /.zsh/functions/cci | |
parent | 0d3c5d8badbdf8892ed586a30033fd02ee361372 (diff) | |
download | dotfiles-aa53962b9540dce996b183a5cd6e14274cfeec0f.tar.gz dotfiles-aa53962b9540dce996b183a5cd6e14274cfeec0f.tar.bz2 dotfiles-aa53962b9540dce996b183a5cd6e14274cfeec0f.zip |
Moved some functions to their own files
Diffstat (limited to '')
-rw-r--r-- | .zsh/functions/cci | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/.zsh/functions/cci b/.zsh/functions/cci new file mode 100644 index 0000000..4baaa7d --- /dev/null +++ b/.zsh/functions/cci @@ -0,0 +1,77 @@ +# Commit a new config change +# Works only for simple cases +_ask_$0 () +{ + echo -n "Is this ok? [y/n] " + + if ! read -q; then + echo + echo "I would have done the wrong thing ... aborting!" + return 2 + else + echo + fi +} + +if [[ $# == 0 ]]; then + echo "No message given. Aborting." + return 1 +fi + +local message=$1 +local tok=__cci__ + +pushd -q ~ + +local indexed="$(config status --porcelain | grep -v '^ ')" + +if [[ -n $indexed ]]; then + echo ">> Stuff in index -- only commiting this" + echo "$indexed" + _ask_$0 || return 2 +else + echo ">> Nothing in index -- commiting everything which has changed" + echo "$(config status)" + + _ask_$0 || return 2 + config add -u +fi + +cstg diff -O --cached +_ask_$0 || return 2 + +echo ">> Creating new patch" +cstg new $tok -m "$message" + +echo ">> Refreshing" +cstg refresh -i + +if [[ -z $(cstg files) ]]; then + echo + echo "Ehm - this patch is empty. Narf. Aborting!" + echo "Deleting useless patch" + cstg del $tok + return 3 +fi + +echo ">> Committing" +cstg commit $tok + +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 + +echo ">> Pushing to remote" +config push + +echo ">> Re-apply patches" +cstg push -a -k + +echo ">> Done" + +popd -q + +# vim: ft=zsh |