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 | |
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 | ||||
-rw-r--r-- | .zsh/functions/open_ebuild | 43 | ||||
-rw-r--r-- | .zsh/zshfunctions | 124 |
3 files changed, 120 insertions, 124 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 diff --git a/.zsh/functions/open_ebuild b/.zsh/functions/open_ebuild new file mode 100644 index 0000000..dedecb3 --- /dev/null +++ b/.zsh/functions/open_ebuild @@ -0,0 +1,43 @@ +# Open the ebuild with a specified command +local ebuild sel +local -a elist + +if [[ $# -lt 2 ]]; then + echo "No package name given." + return 4 +fi + +ebuild="$(equery w $2 2>&1 )" +if [[ $? -ne 0 ]]; then + if [[ $ebuild == *"Ambiguous"* ]]; then + elist=(${(f)ebuild}) + + # remove the first line + shift elist + + echo "Ambiguous package name '$2' -- choose from: " + cat -n <<< ${(F)elist} + read "sel?Selection: " + + if [[ -z $elist[$sel] ]]; then + echo "Invalid choice." + return 1 + else + # the "=" is needed to strip the leading spaces and the quotes + open_ebuild $1 ${=elist[$sel]} + return $? + fi + + elif [[ $ebuild == *"No packages matching"* ]]; then + echo "Trying masked packages too..." + ebuild=$(equery w -m $2 2>&1) + fi +fi + +if [[ $? -eq 0 ]]; then + $1 $ebuild +else + echo "No ebuild found" +fi + +# vim: ft=zsh diff --git a/.zsh/zshfunctions b/.zsh/zshfunctions index 67186cd..ad50ea1 100644 --- a/.zsh/zshfunctions +++ b/.zsh/zshfunctions @@ -26,130 +26,6 @@ _unpack () ebuild $1 clean unpack } -# Open the ebuild with a specified command -open_ebuild () -{ - local ebuild sel - local -a elist - - if [[ $# -lt 2 ]]; then - echo "No package name given." - return 4 - fi - - ebuild="$(equery w $2 2>&1 )" - if [[ $? -ne 0 ]]; then - if [[ $ebuild == *"Ambiguous"* ]]; then - elist=(${(f)ebuild}) - - # remove the first line - shift elist - - echo "Ambiguous package name '$2' -- choose from: " - cat -n <<< ${(F)elist} - read "sel?Selection: " - - if [[ -z $elist[$sel] ]]; then - echo "Invalid choice." - return 1 - else - # the "=" is needed to strip the leading spaces and the quotes - open_ebuild $1 ${=elist[$sel]} - return $? - fi - - elif [[ $ebuild == *"No packages matching"* ]]; then - echo "Trying masked packages too..." - ebuild=$(equery w -m $2 2>&1) - fi - fi - - if [[ $? -eq 0 ]]; then - $1 $ebuild - else - echo "No ebuild found" - fi -} - -# Commit a new config change -# Works only for simple cases -cci () -{ - _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 -} - check_libs() { for i in $(ps -A -o pid | tail -n +2); do |