diff options
Diffstat (limited to 'plugins')
| -rw-r--r-- | plugins/bundler/bundler.plugin.zsh | 2 | ||||
| -rw-r--r-- | plugins/celery/_celery | 129 | ||||
| -rw-r--r-- | plugins/gpg-agent/gpg-agent.plugin.zsh | 26 | ||||
| -rw-r--r-- | plugins/mercurial/mercurial.plugin.zsh | 38 | ||||
| -rw-r--r-- | plugins/osx/osx.plugin.zsh | 4 | ||||
| -rw-r--r-- | plugins/tmux/tmux.plugin.zsh | 8 | 
6 files changed, 189 insertions, 18 deletions
diff --git a/plugins/bundler/bundler.plugin.zsh b/plugins/bundler/bundler.plugin.zsh index 9446aafab..c01241409 100644 --- a/plugins/bundler/bundler.plugin.zsh +++ b/plugins/bundler/bundler.plugin.zsh @@ -7,7 +7,7 @@ alias bu="bundle update"  # The following is based on https://github.com/gma/bundler-exec -bundled_commands=(annotate cap capify cucumber foreman guard jekyll middleman nanoc rackup rainbows rake rspec ruby shotgun spec spin spork thin thor unicorn unicorn_rails puma) +bundled_commands=(annotate berks cap capify cucumber foodcritic foreman guard jekyll kitchen knife middleman nanoc rackup rainbows rake rspec ruby shotgun spec spin spork strainer tailor thin thor unicorn unicorn_rails puma)  ## Functions diff --git a/plugins/celery/_celery b/plugins/celery/_celery new file mode 100644 index 000000000..63af9fad5 --- /dev/null +++ b/plugins/celery/_celery @@ -0,0 +1,129 @@ +#compdef celery +#autoload + +#celery zsh  completion + +_celery () { +local -a _1st_arguments ifargs dopts controlargs + +typeset -A opt_args + +_1st_arguments=('worker' 'events' 'beat' 'shell' 'multi' 'amqp' 'status' 'inspect' \ +                'control' 'purge' 'list' 'migrate' 'call' 'result' 'report') +ifargs=('--app=' '--broker=' '--loader=' '--config=' '--version') +dopts=('--detach' '--umask=' '--gid=' '--uid=' '--pidfile=' '--logfile=' '--loglevel=') +controlargs=('--timeout' '--destination') +_arguments \ +        '(-A --app=)'{-A,--app}'[app instance to use (e.g. module.attr_name):APP]' \ +        '(-b --broker=)'{-b,--broker}'[url to broker.  default is "amqp://guest@localhost//":BROKER]' \ +        '(--loader)--loader[name of custom loader class to use.:LOADER]' \ +        '(--config)--config[Name of the configuration module:CONFIG]' \ +        '(--workdir)--workdir[Optional directory to change to after detaching.:WORKING_DIRECTORY]' \ +        '(-q --quiet)'{-q,--quiet}'[Don"t show as much output.]' \ +        '(-C --no-color)'{-C,--no-color}'[Don"t display colors.]' \ +        '(--version)--version[show program"s version number and exit]' \ +        '(- : *)'{-h,--help}'[show this help message and exit]' \ +        '*:: :->subcmds' && return 0 + +if (( CURRENT == 1 )); then +    _describe -t commands "celery subcommand" _1st_arguments +    return +fi + +case "$words[1]" in +    worker) +    _arguments \ +    '(-C --concurrency=)'{-C,--concurrency=}'[Number of child processes processing the queue. The default is the number of CPUs.]' \ +    '(--pool)--pool=:::(processes eventlet gevent threads solo)' \ +    '(--purge --discard)'{--discard,--purge}'[Purges all waiting tasks before the daemon is started.]' \ +    '(-f --logfile=)'{-f,--logfile=}'[Path to log file. If no logfile is specified, stderr is used.]' \ +    '(--loglevel=)--loglevel=:::(critical error warning info debug)' \ +    '(-N --hostname=)'{-N,--hostname=}'[Set custom hostname, e.g. "foo.example.com".]' \ +    '(-B --beat)'{-B,--beat}'[Also run the celerybeat periodic task scheduler.]' \ +    '(-s --schedule=)'{-s,--schedule=}'[Path to the schedule database if running with the -B option. Defaults to celerybeat-schedule.]' \ +    '(-S --statedb=)'{-S,--statedb=}'[Path to the state database.Default: None]' \ +    '(-E --events)'{-E,--events}'[Send events that can be captured by monitors like celeryev, celerymon, and others.]' \ +    '(--time-limit=)--time-limit=[nables a hard time limit (in seconds int/float) for tasks]' \ +    '(--soft-time-limit=)--soft-time-limit=[Enables a soft time limit (in seconds int/float) for tasks]' \ +    '(--maxtasksperchild=)--maxtasksperchild=[Maximum number of tasks a pool worker can execute before it"s terminated and replaced by a new worker.]' \ +    '(-Q --queues=)'{-Q,--queues=}'[List of queues to enable for this worker, separated by comma. By default all configured queues are enabled.]' \ +    '(-I --include=)'{-I,--include=}'[Comma separated list of additional modules to import.]' \ +    '(--pidfile=)--pidfile=[Optional file used to store the process pid.]' \ +    '(--autoscale=)--autoscale=[Enable autoscaling by providing max_concurrency, min_concurrency.]' \ +    '(--autoreload)--autoreload[Enable autoreloading.]' \ +    '(--no-execv)--no-execv[Don"t do execv after multiprocessing child fork.]' +    compadd -a ifargs +    ;; +    inspect) +    _values -s \ +    'active[dump active tasks (being processed)]' \ +    'active_queues[dump queues being consumed from]' \ +    'ping[ping worker(s)]' \ +    'registered[dump of registered tasks]' \ +    'report[get bugreport info]' \ +    'reserved[dump reserved tasks (waiting to be processed)]' \ +    'revoked[dump of revoked task ids]' \ +    'scheduled[dump scheduled tasks (eta/countdown/retry)]' \ +    'stats[dump worker statistics]' +    compadd -a controlargs ifargs +    ;; +    control) +    _values -s \ +    'add_consumer[tell worker(s) to start consuming a queue]' \ +    'autoscale[change autoscale settings]' \ +    'cancel_consumer[tell worker(s) to stop consuming a queue]' \ +    'disable_events[tell worker(s) to disable events]' \ +    'enable_events[tell worker(s) to enable events]' \ +    'pool_grow[start more pool processes]' \ +    'pool_shrink[use less pool processes]' \ +    'rate_limit[tell worker(s) to modify the rate limit for a task type]' \ +    'time_limit[tell worker(s) to modify the time limit for a task type.]' +    compadd -a controlargs ifargs +    ;; +    multi) +    _values -s \ +    '--nosplash[Don"t display program info.]' \ +    '--verbose[Show more output.]' \ +    '--no-color[Don"t display colors.]' \ +    '--quiet[Don"t show as much output.]' \ +    'start' 'restart' 'stopwait' 'stop' 'show' \ +    'names' 'expand' 'get' 'kill' +    compadd -a ifargs +    ;; +    amqp) +    _values -s \ +    'queue.declare' 'queue.purge' 'exchange.delete' 'basic.publish' \ +    'exchange.declare' 'queue.delete' 'queue.bind' 'basic.get' +    ;; +    list) +    _values -s, 'bindings' +    ;; +    shell) +    _values -s \ +    '--ipython[force iPython.]' \ +    '--bpython[force bpython.]' \ +    '--python[force default Python shell.]' \ +    '--without-tasks[don"t add tasks to locals.]' \ +    '--eventlet[use eventlet.]' \ +    '--gevent[use gevent.]' +    compadd -a ifargs +    ;; +    beat) +    _arguments \ +    '(-s --schedule=)'{-s,--schedule=}'[Path to the schedule database. Defaults to celerybeat-schedule.]' \ +    '(-S --scheduler=)'{-S,--scheduler=}'[Scheduler class to use. Default is celery.beat.PersistentScheduler.]' \ +    '(--max-interval)--max-interval[]' +    compadd -a dopts fargs +    ;; +    events) +    _arguments \ +    '(-d --dump)'{-d,--dump}'[Dump events to stdout.]' \ +    '(-c --camera=)'{-c,--camera=}'[Take snapshots of events using this camera.]' \ +    '(-F --frequency=)'{-F,--frequency=}'[Camera: Shutter frequency.  Default is every 1.0 seconds.]' \ +    '(-r --maxrate=)'{-r,--maxrate=}'[Camera: Optional shutter rate limit (e.g. 10/m).]' +    compadd -a dopts fargs +    ;; +    *) +        ;; +    esac +} diff --git a/plugins/gpg-agent/gpg-agent.plugin.zsh b/plugins/gpg-agent/gpg-agent.plugin.zsh index 109af44c8..4071334cb 100644 --- a/plugins/gpg-agent/gpg-agent.plugin.zsh +++ b/plugins/gpg-agent/gpg-agent.plugin.zsh @@ -14,16 +14,24 @@ function start_agent_withssh {      export SSH_AGENT_PID  } -# source settings of old agent, if applicable -if [ -f "${GPG_ENV}" ]; then -  . ${GPG_ENV} > /dev/null -fi +# check if another agent is running +if ! gpg-connect-agent --quiet /bye > /dev/null 2> /dev/null; then +    # source settings of old agent, if applicable +    if [ -f "${GPG_ENV}" ]; then +        . ${GPG_ENV} > /dev/null +    fi -# check for existing ssh-agent -if ssh-add -l > /dev/null 2> /dev/null; then -    start_agent_nossh; -else -    start_agent_withssh; +    # check again if another agent is running using the newly sourced settings +    if ! gpg-connect-agent --quiet /bye > /dev/null 2> /dev/null; then +        # check for existing ssh-agent +        if ssh-add -l > /dev/null 2> /dev/null; then +            # ssh-agent running, start gpg-agent without ssh support +            start_agent_nossh; +        else +            # otherwise start gpg-agent with ssh support +            start_agent_withssh; +        fi +    fi  fi  GPG_TTY=$(tty) diff --git a/plugins/mercurial/mercurial.plugin.zsh b/plugins/mercurial/mercurial.plugin.zsh index 9aa2d167a..83dd578b3 100644 --- a/plugins/mercurial/mercurial.plugin.zsh +++ b/plugins/mercurial/mercurial.plugin.zsh @@ -17,8 +17,40 @@ alias hgs='hg status'  # this is the 'git commit --amend' equivalent  alias hgca='hg qimport -r tip ; hg qrefresh -e ; hg qfinish tip' -function hg_current_branch() { -  if [ -d .hg ]; then -    echo hg:$(hg branch) +function in_hg() { +  if [[ -d .hg ]] || $(hg summary > /dev/null 2>&1); then +    echo 1    fi  } + +function hg_get_branch_name() { +  if [ $(in_hg) ]; then +    echo $(hg branch) +  fi +} + +function hg_prompt_info { +  if [ $(in_hg) ]; then +    _DISPLAY=$(hg_get_branch_name) +    echo "$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_HG_PROMPT_PREFIX\ +$ZSH_THEME_REPO_NAME_COLOR$_DISPLAY$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_HG_PROMPT_SUFFIX$ZSH_PROMPT_BASE_COLOR$(hg_dirty)$ZSH_PROMPT_BASE_COLOR" +    unset _DISPLAY +  fi +} + +function hg_dirty_choose { +  if [ $(in_hg) ]; then +    hg status 2> /dev/null | grep -Eq '^\s*[ACDIM!?L]' +    if [ $pipestatus[-1] -eq 0 ]; then +      # Grep exits with 0 when "One or more lines were selected", return "dirty". +      echo $1 +    else +      # Otherwise, no lines were found, or an error occurred. Return clean. +      echo $2 +    fi +  fi +} + +function hg_dirty { +  hg_dirty_choose $ZSH_THEME_HG_PROMPT_DIRTY $ZSH_THEME_HG_PROMPT_CLEAN +} diff --git a/plugins/osx/osx.plugin.zsh b/plugins/osx/osx.plugin.zsh index 51cd7c143..dd785f911 100644 --- a/plugins/osx/osx.plugin.zsh +++ b/plugins/osx/osx.plugin.zsh @@ -6,7 +6,7 @@  # ------------------------------------------------------------------------------  function tab() { -  local command="cd \\\"$PWD\\\"" +  local command="cd \\\"$PWD\\\"; clear; "    (( $# > 0 )) && command="${command}; $*"    the_app=$( @@ -34,7 +34,7 @@ EOF            launch session "Default Session"            set current_session to current session            tell current_session -            write text "${command}; clear;" +            write text "${command}"            end tell          end tell        end tell diff --git a/plugins/tmux/tmux.plugin.zsh b/plugins/tmux/tmux.plugin.zsh index 465f5b053..049ceb30f 100644 --- a/plugins/tmux/tmux.plugin.zsh +++ b/plugins/tmux/tmux.plugin.zsh @@ -14,6 +14,8 @@ if which tmux &> /dev/null  	[[ -n "$ZSH_TMUX_AUTOQUIT" ]] || ZSH_TMUX_AUTOQUIT=$ZSH_TMUX_AUTOSTART  	# Set term to screen or screen-256color based on current terminal support  	[[ -n "$ZSH_TMUX_FIXTERM" ]] || ZSH_TMUX_FIXTERM=true +	# Set '-CC' option for iTerm2 tmux integration +	[[ -n "$$ZSH_TMUX_ITERM2" ]] || ZSH_TMUX_ITERM2=false  	# The TERM to use for non-256 color terminals.  	# Tmux states this should be screen, but you may need to change it on  	# systems without the proper terminfo @@ -36,7 +38,7 @@ if which tmux &> /dev/null  	fi  	# Set the correct local config file to use. -	if [[ -f $HOME/.tmux.conf || -h $HOME/.tmux.conf ]] +    if [[ "$ZSH_TMUX_ITERM2" == "false" ]] && (( [[ -f $HOME/.tmux.conf ]] || -h $HOME/.tmux.conf ]] ))  	then  		#use this when they have a ~/.tmux.conf  		export _ZSH_TMUX_FIXED_CONFIG="$zsh_tmux_plugin_path/tmux.extra.conf" @@ -55,11 +57,11 @@ if which tmux &> /dev/null  		# Try to connect to an existing session.  		elif [[ "$ZSH_TMUX_AUTOCONNECT" == "true" ]]  		then -			\tmux attach || \tmux `[[ "$ZSH_TMUX_FIXTERM" == "true" ]] && echo '-f '$_ZSH_TMUX_FIXED_CONFIG`  new-session +			\tmux `[[ "$ZSH_TMUX_ITERM2" == "true" ]] && echo '-CC '` attach || \tmux `[[ "$ZSH_TMUX_ITERM2" == "true" ]] && echo '-CC '` `[[ "$ZSH_TMUX_FIXTERM" == "true" ]] && echo '-f '$_ZSH_TMUX_FIXED_CONFIG` new-session  			[[ "$ZSH_TMUX_AUTOQUIT" == "true" ]] && exit  		# Just run tmux, fixing the TERM variable if requested.  		else -			\tmux `[[ "$ZSH_TMUX_FIXTERM" == "true" ]] && echo '-f '$_ZSH_TMUX_FIXED_CONFIG` +			\tmux `[[ "$ZSH_TMUX_ITERM2" == "true" ]] && echo '-CC '` `[[ "$ZSH_TMUX_FIXTERM" == "true" ]] && echo '-f '$_ZSH_TMUX_FIXED_CONFIG`  			[[ "$ZSH_TMUX_AUTOQUIT" == "true" ]] && exit  		fi  	}  | 
