Merge branch 'master' into master

This commit is contained in:
Sandra Parsick 2017-04-13 13:55:42 +02:00 committed by GitHub
commit 440496ca73
51 changed files with 1835 additions and 836 deletions

123
CONTRIBUTING.md Normal file
View file

@ -0,0 +1,123 @@
# CONTRIBUTING GUIDELINES
Oh-My-Zsh is a community-driven project. Contribution is welcome, encouraged and appreciated.
It is also essential for the development of the project.
These guidelines are an attempt at better addressing the huge amount of pending
issues and pull requests. Please read them closely.
Foremost, be so kind as to [search](#use-the-search-luke). This ensures any contribution
you would make is not already covered.
* [Issues](#reporting-issues)
* [You have a problem](#you-have-a-problem)
* [You have a suggestion](#you-have-a-suggestion)
* [Pull Requests](#submitting-pull-requests)
* [Getting started](#getting-started)
* [You have a solution](#you-have-a-solution)
* [You have an addition](#you-have-an-addition)
* [Information sources (_aka_ search)](#use-the-search-luke)
**BONUS:** [Volunteering](#you-have-spare-time-to-volunteer)
## Reporting Issues
### You have a problem
Please be so kind as to [search](#use-the-search-luke) for any open issue already covering
your problem.
If you find one, comment on it so we can know there are more people experiencing it.
If not, look at the [Troubleshooting](https://github.com/robbyrussell/oh-my-zsh/wiki/Troubleshooting)
page for instructions on how to gather data to better debug your problem.
Then, you can go ahead and create an issue with as much detail as you can provide.
It should include the data gathered as indicated above, along with:
1. How to reproduce the problem
2. What the correct behavior should be
3. What the actual behavior is
Please copy to anyone relevant (_eg_ plugin maintainers) by mentioning their GitHub handle
(starting with `@`) in your message.
We will do our very best to help you.
### You have a suggestion
Please be so kind as to [search](#use-the-search-luke) for any open issue already covering
your suggestion.
If you find one, comment on it so we can know there are more people supporting it.
If not, you can go ahead and create an issue. Please copy to anyone relevant (_eg_ plugin
maintainers) by mentioning their GitHub handle (starting with `@`) in your message.
## Submitting Pull Requests
### Getting started
You should be familiar with the basics of
[contributing on GitHub](https://help.github.com/articles/using-pull-requests) and have a fork
[properly set up](https://github.com/robbyrussell/oh-my-zsh/wiki/Contribution-Technical-Practices).
You MUST always create PRs with _a dedicated branch_ based on the latest upstream tree.
If you create your own PR, please make sure you do it right. Also be so kind as to reference
any issue that would be solved in the PR description body,
[for instance](https://help.github.com/articles/closing-issues-via-commit-messages/)
_"Fixes #XXXX"_ for issue number XXXX.
### You have a solution
Please be so kind as to [search](#use-the-search-luke) for any open issue already covering
your [problem](#you-have-a-problem), and any pending/merged/rejected PR covering your solution.
If the solution is already reported, try it out and +1 the pull request if the
solution works ok. On the other hand, if you think your solution is better, post
it with a reference to the other one so we can have both solutions to compare.
If not, then go ahead and submit a PR. Please copy to anyone relevant (e.g. plugin
maintainers) by mentioning their GitHub handle (starting with `@`) in your message.
### You have an addition
Please [do not](https://github.com/robbyrussell/oh-my-zsh/wiki/Themes#dont-send-us-your-theme-for-now)
send themes for now.
Please be so kind as to [search](#use-the-search-luke) for any pending, merged or rejected Pull Requests
covering or related to what you want to add.
If you find one, try it out and work with the author on a common solution.
If not, then go ahead and submit a PR. Please copy to anyone relevant (_eg_ plugin
maintainers) by mentioning their GitHub handle (starting with `@`) in your message.
For any extensive change, _eg_ a new plugin, you will have to find testers to +1 your PR.
----
## Use the Search, Luke
_May the Force (of past experiences) be with you_
GitHub offers [many search features](https://help.github.com/articles/searching-github/)
to help you check whether a similar contribution to yours already exists. Please search
before making any contribution, it avoids duplicates and eases maintenance. Trust me,
that works 90% of the time.
You can also take a look at the [FAQ](https://github.com/robbyrussell/oh-my-zsh/wiki/FAQ)
to be sure your contribution has not already come up.
If all fails, your thing has probably not been reported yet, so you can go ahead
and [create an issue](#reporting-issues) or [submit a PR](#submitting-pull-requests).
----
### You have spare time to volunteer
Very nice!! :)
Please have a look at the [Volunteer](https://github.com/robbyrussell/oh-my-zsh/wiki/Volunteers)
page for instructions on where to start and more.

View file

@ -1,6 +1,6 @@
The MIT License (MIT) The MIT License (MIT)
Copyright (c) 2009-2016 Robby Russell and contributors Copyright (c) 2009-2017 Robby Russell and contributors
See the full list at https://github.com/robbyrussell/oh-my-zsh/contributors See the full list at https://github.com/robbyrussell/oh-my-zsh/contributors
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy

View file

@ -4,9 +4,9 @@
Oh My Zsh is an open source, community-driven framework for managing your [zsh](http://www.zsh.org/) configuration. Oh My Zsh is an open source, community-driven framework for managing your [zsh](http://www.zsh.org/) configuration.
That sounds boring. Let's try this again. Sounds boring. Let's try again.
__Oh My Zsh is a way of life!__ __Oh My Zsh will not make you a 10x developer...but you might feel like one.__
Once installed, your terminal shell will become the talk of the town _or your money back!_ With each keystroke in your command prompt, you'll take advantage of the hundreds of powerful plugins and beautiful themes. Strangers will come up to you in cafés and ask you, _"that is amazing! are you some sort of genius?"_ Once installed, your terminal shell will become the talk of the town _or your money back!_ With each keystroke in your command prompt, you'll take advantage of the hundreds of powerful plugins and beautiful themes. Strangers will come up to you in cafés and ask you, _"that is amazing! are you some sort of genius?"_
@ -20,7 +20,7 @@ To learn more, visit [ohmyz.sh](http://ohmyz.sh) and follow [@ohmyzsh](https://t
__Disclaimer:__ _Oh My Zsh works best on macOS and Linux._ __Disclaimer:__ _Oh My Zsh works best on macOS and Linux._
* Unix-based operating system (macOS or Linux) * Unix-like operating system (macOS or Linux)
* [Zsh](http://www.zsh.org) should be installed (v4.3.9 or more recent). If not pre-installed (`zsh --version` to confirm), check the following instruction here: [Installing ZSH](https://github.com/robbyrussell/oh-my-zsh/wiki/Installing-ZSH) * [Zsh](http://www.zsh.org) should be installed (v4.3.9 or more recent). If not pre-installed (`zsh --version` to confirm), check the following instruction here: [Installing ZSH](https://github.com/robbyrussell/oh-my-zsh/wiki/Installing-ZSH)
* `curl` or `wget` should be installed * `curl` or `wget` should be installed
* `git` should be installed * `git` should be installed

View file

@ -5,7 +5,7 @@ WORDCHARS=''
unsetopt menu_complete # do not autoselect the first completion entry unsetopt menu_complete # do not autoselect the first completion entry
unsetopt flowcontrol unsetopt flowcontrol
setopt auto_menu # show completion menu on succesive tab press setopt auto_menu # show completion menu on successive tab press
setopt complete_in_word setopt complete_in_word
setopt always_to_end setopt always_to_end

View file

@ -86,7 +86,7 @@ function default() {
} }
# #
# Set enviroment variable "$1" to default value "$2" if "$1" is not yet defined. # Set environment variable "$1" to default value "$2" if "$1" is not yet defined.
# #
# Arguments: # Arguments:
# 1. name - The env variable to set # 1. name - The env variable to set

View file

@ -19,8 +19,8 @@ fi
setopt long_list_jobs setopt long_list_jobs
## pager ## pager
export PAGER="less" env_default PAGER 'less'
export LESS="-R" env_default LESS '-R'
## super user alias ## super user alias
alias _='sudo' alias _='sudo'

View file

@ -4,6 +4,8 @@ autoload -U colors && colors
# Enable ls colors # Enable ls colors
export LSCOLORS="Gxfxcxdxbxegedabagacad" export LSCOLORS="Gxfxcxdxbxegedabagacad"
# TODO organise this chaotic logic
if [[ "$DISABLE_LS_COLORS" != "true" ]]; then if [[ "$DISABLE_LS_COLORS" != "true" ]]; then
# Find the option for using colors in ls, depending on the version # Find the option for using colors in ls, depending on the version
if [[ "$OSTYPE" == netbsd* ]]; then if [[ "$OSTYPE" == netbsd* ]]; then
@ -18,14 +20,19 @@ if [[ "$DISABLE_LS_COLORS" != "true" ]]; then
gls --color -d . &>/dev/null && alias ls='gls --color=tty' gls --color -d . &>/dev/null && alias ls='gls --color=tty'
colorls -G -d . &>/dev/null && alias ls='colorls -G' colorls -G -d . &>/dev/null && alias ls='colorls -G'
elif [[ "$OSTYPE" == darwin* ]]; then elif [[ "$OSTYPE" == darwin* ]]; then
gls --color -d . &>/dev/null && alias ls='gls --color=tty' || alias ls='ls -G' # this is a good alias, it works by default just using $LSCOLORS
ls -G . &>/dev/null && alias ls='ls -G'
# only use coreutils ls if there is a dircolors customization present ($LS_COLORS or .dircolors file)
# otherwise, gls will use the default color scheme which is ugly af
[[ -n "$LS_COLORS" || -f "$HOME/.dircolors" ]] && gls --color -d . &>/dev/null && alias ls='gls --color=tty'
else else
# For GNU ls, we use the default ls color theme. They can later be overwritten by themes. # For GNU ls, we use the default ls color theme. They can later be overwritten by themes.
if [[ -z "$LS_COLORS" ]]; then if [[ -z "$LS_COLORS" ]]; then
(( $+commands[dircolors] )) && eval "$(dircolors -b)" (( $+commands[dircolors] )) && eval "$(dircolors -b)"
fi fi
ls --color -d . &>/dev/null && alias ls='ls --color=tty' || alias ls='ls -G' ls --color -d . &>/dev/null && alias ls='ls --color=tty' || { ls -G . &>/dev/null && alias ls='ls -G' }
# Take advantage of $LS_COLORS for completion as well. # Take advantage of $LS_COLORS for completion as well.
zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}" zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}"

View file

@ -73,6 +73,8 @@
| pacupd | sudo pacman -Sy | Update and refresh the local package database | | pacupd | sudo pacman -Sy | Update and refresh the local package database |
| pacupg | sudo pacman -Syu | Sync with repositories before upgrading packages | | pacupg | sudo pacman -Syu | Sync with repositories before upgrading packages |
| upgrade | sudo pacman -Syu | Sync with repositories before upgrading packages | | upgrade | sudo pacman -Syu | Sync with repositories before upgrading packages |
| pacfileupg | sudo pacman -Fy | Download fresh package databases from the server |
| pacfiles | pacman -Fs | Search package file names for matching strings. |
| Function | Description | | Function | Description |
|----------------|------------------------------------------------------| |----------------|------------------------------------------------------|

View file

@ -82,6 +82,8 @@ alias pacinsd='sudo pacman -S --asdeps'
alias pacmir='sudo pacman -Syy' alias pacmir='sudo pacman -Syy'
alias paclsorphans='sudo pacman -Qdt' alias paclsorphans='sudo pacman -Qdt'
alias pacrmorphans='sudo pacman -Rs $(pacman -Qtdq)' alias pacrmorphans='sudo pacman -Rs $(pacman -Qtdq)'
alias pacfileupg='sudo pacman -Fy'
alias pacfiles='pacman tFs'
if (( $+commands[abs] && $+commands[aur] )); then if (( $+commands[abs] && $+commands[aur] )); then

View file

@ -1,7 +1,7 @@
# Activates autoenv or reports its failure # Activates autoenv or reports its failure
() { () {
if ! type autoenv_init >/dev/null; then if ! type autoenv_init >/dev/null; then
for d (~/.autoenv /usr/local/opt/autoenv /usr/local/bin); do for d (~/.autoenv ~/.local/bin /usr/local/opt/autoenv /usr/local/bin); do
if [[ -e $d/activate.sh ]]; then if [[ -e $d/activate.sh ]]; then
autoenv_dir=$d autoenv_dir=$d
break break

View file

@ -100,7 +100,7 @@ elif [[ "$OSTYPE" = linux* ]] ; then
else else
color='red' color='red'
fi fi
echo "%{$fg[$color]%}[$(battery_pct_remaining)%%]%{$reset_color%}" echo "%{$fg[$color]%}$(battery_pct_remaining)%%%{$reset_color%}"
else else
echo "∞" echo "∞"
fi fi

View file

@ -3,7 +3,7 @@ alias bubo='brew update && brew outdated'
alias bubc='brew upgrade && brew cleanup' alias bubc='brew upgrade && brew cleanup'
alias bubu='bubo && bubc' alias bubu='bubo && bubc'
if mkdir "$ZSH_CACHE_DIR/.brew-completion-message" 2>/dev/null; then if command mkdir "$ZSH_CACHE_DIR/.brew-completion-message" 2>/dev/null; then
print -P '%F{yellow}'Oh My Zsh brew plugin: print -P '%F{yellow}'Oh My Zsh brew plugin:
cat <<-'EOF' cat <<-'EOF'

View file

@ -1,11 +1,15 @@
# cask plugin # Cask plugin
Loads `cask` completion from non-standard locations, such as if installed [Cask](https://github.com/cask/cask) is a project management tool for Emacs that helps
automate the package development cycle; development, dependencies, testing, building,
packaging and more.
This plugin loads `cask` completion from non-standard locations, such as if installed
via Homebrew or others. To enable it, add `cask` to your plugins array: via Homebrew or others. To enable it, add `cask` to your plugins array:
```zsh ```zsh
plugins=(... cask) plugins=(... cask)
``` ```
Make sure you have the `cask` directory in your `$PATH` before loading Make sure you have the `cask` directory in your `$PATH` before loading Oh My Zsh,
Oh My Zsh, otherwise you'll get the "command not found" error. otherwise you'll get a "command not found" error.

View file

@ -39,14 +39,17 @@ alias c='composer'
alias csu='composer self-update' alias csu='composer self-update'
alias cu='composer update' alias cu='composer update'
alias cr='composer require' alias cr='composer require'
alias crm='composer remove'
alias ci='composer install' alias ci='composer install'
alias ccp='composer create-project' alias ccp='composer create-project'
alias cdu='composer dump-autoload' alias cdu='composer dump-autoload'
alias cdo='composer dump-autoload --optimize-autoloader'
alias cgu='composer global update' alias cgu='composer global update'
alias cgr='composer global require' alias cgr='composer global require'
alias cgrm='composer global remove'
# install composer in the current directory # install composer in the current directory
alias cget='curl -s https://getcomposer.org/installer | php' alias cget='curl -s https://getcomposer.org/installer | php'
# Add Composer's global binaries to PATH # Add Composer's global binaries to PATH
export PATH=$PATH:~/.composer/vendor/bin export PATH=$PATH:$(composer global config bin-dir --absolute) 2>/dev/null

View file

@ -192,7 +192,7 @@ apt-history () {
awk '{print $4"="$5}' awk '{print $4"="$5}'
;; ;;
list) list)
zcat $(ls -rt /var/log/dpkg*) zgrep --no-filename '' $(ls -rt /var/log/dpkg*)
;; ;;
*) *)
echo "Parameters:" echo "Parameters:"

View file

@ -9,6 +9,8 @@
# pushd -N: start counting from right of `dirs' output # pushd -N: start counting from right of `dirs' output
switch-to-dir () { switch-to-dir () {
[[ ${#dirstack} -eq 0 ]] && return
while ! builtin pushd -q $1 &>/dev/null; do while ! builtin pushd -q $1 &>/dev/null; do
# We found a missing directory: pop it out of the dir stack # We found a missing directory: pop it out of the dir stack
builtin popd -q $1 builtin popd -q $1

File diff suppressed because it is too large Load diff

34
plugins/dotenv/README.md Normal file
View file

@ -0,0 +1,34 @@
# dotenv
Automatically load your project ENV variables from `.env` file when you `cd` into project root directory.
Storing configuration in the environment is one of the tenets of a [twelve-factor app](http://www.12factor.net). Anything that is likely to change between deployment environmentssuch as resource handles for databases or credentials for external servicesshould be extracted from the code into environment variables.
## Installation
Just add the plugin to your `.zshrc`:
```sh
plugins=(git man dotenv)
```
## Usage
Create `.env` file inside your project directory and put your local ENV variables there.
For example:
```sh
export AWS_S3_TOKEN=d84a83539134f28f412c652b09f9f98eff96c9a
export SECRET_KEY=7c6c72d959416d5aa368a409362ec6e2ac90d7f
export MONGO_URI=mongodb://127.0.0.1:27017
export PORT=3001
```
`export` is optional. This format works as well:
```sh
AWS_S3_TOKEN=d84a83539134f28f412c652b09f9f98eff96c9a
SECRET_KEY=7c6c72d959416d5aa368a409362ec6e2ac90d7f
MONGO_URI=mongodb://127.0.0.1:27017
PORT=3001
```
**It's strongly recommended to add `.env` file to `.gitignore`**, because usually it contains sensitive information such as your credentials, secret keys, passwords etc. You don't want to commit this file, it supposed to be local only.

View file

@ -0,0 +1,10 @@
#!/bin/zsh
source_env() {
if [[ -f .env ]]; then
source .env
fi
}
autoload -U add-zsh-hook
add-zsh-hook chpwd source_env

View file

@ -1,6 +1,6 @@
# droplr # droplr
Use [Droplr](https://droplr.com/) from the comand line to upload files and shorten Use [Droplr](https://droplr.com/) from the command line to upload files and shorten
links. It needs to have [Droplr.app](https://droplr.com/apps) installed and logged links. It needs to have [Droplr.app](https://droplr.com/apps) installed and logged
in. MacOS only. in. MacOS only.

View file

@ -43,6 +43,7 @@ alias g='git'
alias ga='git add' alias ga='git add'
alias gaa='git add --all' alias gaa='git add --all'
alias gapa='git add --patch' alias gapa='git add --patch'
alias gau='git add --update'
alias gb='git branch' alias gb='git branch'
alias gba='git branch -a' alias gba='git branch -a'
@ -237,4 +238,4 @@ alias gupv='git pull --rebase -v'
alias glum='git pull upstream master' alias glum='git pull upstream master'
alias gwch='git whatchanged -p --abbrev-commit --pretty=medium' alias gwch='git whatchanged -p --abbrev-commit --pretty=medium'
alias gwip='git add -A; git rm $(git ls-files --deleted) 2> /dev/null; git commit --no-verify -m "--wip--"' alias gwip='git add -A; git rm $(git ls-files --deleted) 2> /dev/null; git commit --no-verify -m "--wip-- [skip ci]"'

View file

@ -52,7 +52,7 @@ if [[ -x "${commands[gwhoami]}" ]]; then
# #
# This method is inflexible since the aliases are at risk of being # This method is inflexible since the aliases are at risk of being
# overriden resulting in the BSD coreutils being called. # overridden resulting in the BSD coreutils being called.
# #
# (( ${+commands[$gcmd]} )) && \ # (( ${+commands[$gcmd]} )) && \
# alias "$gcmd[2,-1]"="${prefix}/${gcmd//"["/"\\["}" # alias "$gcmd[2,-1]"="${prefix}/${gcmd//"["/"\\["}"

View file

@ -24,29 +24,60 @@ function _gradle_core_commands() {
function _gradle_arguments() { function _gradle_arguments() {
_arguments -C \ _arguments -C \
'-a[Do not rebuild project dependencies]' \ '-a[Do not rebuild project dependencies]' \
'-h[Help]' \ '-b[Specifies the build file]' \
'-D[System property]' \ '-c[Specifies the settings file]' \
'-d[Log at the debug level]' \ '-d[Log at the debug level]' \
'--gui[Launches the Gradle GUI app]' \ '-g[Specifies the Gradle user home directory]' \
'--stop[Stop the Gradle daemon]' \ '-h[Shows a help message]' \
'--daemon[Use the Gradle daemon]' \ '-i[Set log level to INFO]' \
'--no-daemon[Do not use the Gradle daemon]' \ '-m[Runs the build with all task actions disabled]' \
'--rerun-task [Specifies that any task optimization is ignored.]' \ '-p[Specifies the start directory for Gradle]' \
'-i[Log at the info level]' \ '-q[Log errors only]' \
'-m[Dry run]' \ '-s[Print out the stacktrace also for user exceptions]' \
'-P[Set a project property]' \ '-t[Continuous mode. Automatically re-run build after changes]' \
'-p[Specifies the start directory]' \ '-u[Don''t search in parent directories for a settings.gradle file]' \
'--profile[Profile the build time]' \ '-v[Prints Gradle version info]' \
'-q[Log at the quiet level (only show errors)]' \
'-v[Print the Gradle version info]' \
'-x[Specify a task to be excluded]' \ '-x[Specify a task to be excluded]' \
'-b[Specifies the build file.]' \ '-D[Set a system property]' \
'-c[Specifies the settings file.]' \ '-I[Specifies an initialization script]' \
'--continue[Continues task execution after a task failure.]' \ '-P[Sets a project property of the root project]' \
'-g[Specifies the Gradle user home directory.]' \ '-S[Print out the full (very verbose) stacktrace]' \
'-I[Specifies an initialization script.]' \ '--build-file[Specifies the build file]' \
'--refresh-dependencies[Refresh the state of dependencies.]' \ '--configure-on-demand[Only relevant projects are configured]' \
'-u[Don''t search in parent directories for a settings.gradle file.]' \ '--console[Type of console output to generate (plain, auto, or rich)]' \
'--continue[Continues task execution after a task failure]' \
'--continuous[Continuous mode. Automatically re-run build after changes]' \
'--daemon[Use the Gradle Daemon]' \
'--debug[Log at the debug level]' \
'--dry-run[Runs the build with all task actions disabled]' \
'--exclude-task[Specify a task to be excluded]' \
'--full-stacktrace[Print out the full (very verbose) stacktrace]' \
'--gradle-user-home[Specifies the Gradle user home directory]' \
'--gui[Launches the Gradle GUI app (Deprecated)]' \
'--help[Shows a help message]' \
'--include-build[Run the build as a composite, including the specified build]' \
'--info[Set log level to INFO]' \
'--init-script[Specifies an initialization script]' \
'--max-workers[Set the maximum number of workers that Gradle may use]' \
'--no-daemon[Do not use the Gradle Daemon]' \
'--no-rebuild[Do not rebuild project dependencies]' \
'--no-search-upwards[Don''t search in parent directories for a settings.gradle file]' \
'--offline[Build without accessing network resources]' \
'--parallel[Build projects in parallel]' \
'--profile[Profile build time and create report]' \
'--project-cache-dir[Specifies the project-specific cache directory]' \
'--project-dir[Specifies the start directory for Gradle]' \
'--project-prop[Sets a project property of the root project]' \
'--quiet[Log errors only]' \
'--recompile-scripts[Forces scripts to be recompiled, bypassing caching]' \
'--refresh-dependencies[Refresh the state of dependencies]' \
'--rerun-task[Specifies that any task optimization is ignored]' \
'--settings-file[Specifies the settings file]' \
'--stacktrace[Print out the stacktrace also for user exceptions]' \
'--status[Print Gradle Daemon status]' \
'--stop[Stop all Gradle Daemons]' \
'--system-prop[Set a system property]' \
'--version[Prints Gradle version info]' \
'*::command:->command' \ '*::command:->command' \
&& return 0 && return 0
} }
@ -61,7 +92,7 @@ _gradle_does_task_list_need_generating () {
} }
############## ##############
# Parse the tasks from `gradle(w) tasks --all` into .gradletasknamecache # Parse the tasks from `gradle(w) tasks --all` and return them to the calling function.
# All lines in the output from gradle(w) that are between /^-+$/ and /^\s*$/ # All lines in the output from gradle(w) that are between /^-+$/ and /^\s*$/
# are considered to be tasks. If and when gradle adds support for listing tasks # are considered to be tasks. If and when gradle adds support for listing tasks
# for programmatic parsing, this method can be deprecated. # for programmatic parsing, this method can be deprecated.
@ -76,7 +107,7 @@ _gradle_parse_tasks () {
task_name_buffer="" task_name_buffer=""
elif [[ $line =~ ^\s*$ ]]; then elif [[ $line =~ ^\s*$ ]]; then
if [[ "$lines_might_be_tasks" = true ]]; then if [[ "$lines_might_be_tasks" = true ]]; then
# If a newline is found, send the buffer to .gradletasknamecache # If a newline is found, echo the buffer to the calling function
while read -r task; do while read -r task; do
echo $task | awk '/[a-zA-Z0-9:-]+/ {print $1}' echo $task | awk '/[a-zA-Z0-9:-]+/ {print $1}'
done <<< "$task_name_buffer" done <<< "$task_name_buffer"
@ -90,6 +121,25 @@ _gradle_parse_tasks () {
done <<< "$1" done <<< "$1"
} }
##############
# Gradle tasks from subprojects are allowed to be executed without specifying
# the subproject; that task will then be called on all subprojects.
# gradle(w) tasks --all only lists tasks per subproject, but when autocompleting
# we often want to be able to run a specific task on all subprojects, e.g.
# "gradle clean".
# This function uses the list of tasks from "gradle tasks --all", and for each
# line grabs everything after the last ":" and combines that output with the original
# output. The combined list is returned as the result of this function.
##############
_gradle_parse_and_extract_tasks () {
# All tasks
tasks=$(_gradle_parse_tasks "$1")
# Task name without sub project(s) prefix
simple_tasks=$(echo $tasks | awk 'BEGIN { FS = ":" } { print $NF }')
echo "$tasks\n$simple_tasks"
}
############################################################################## ##############################################################################
# Discover the gradle tasks by running "gradle tasks --all" # Discover the gradle tasks by running "gradle tasks --all"
############################################################################ ############################################################################
@ -97,7 +147,7 @@ _gradle_tasks () {
if [[ -f build.gradle ]]; then if [[ -f build.gradle ]]; then
_gradle_arguments _gradle_arguments
if _gradle_does_task_list_need_generating; then if _gradle_does_task_list_need_generating; then
_gradle_parse_tasks "$(gradle tasks --all)" > .gradletasknamecache _gradle_parse_and_extract_tasks "$(gradle tasks --all)" > .gradletasknamecache
fi fi
compadd -X "==== Gradle Tasks ====" $(cat .gradletasknamecache) compadd -X "==== Gradle Tasks ====" $(cat .gradletasknamecache)
fi fi
@ -107,7 +157,7 @@ _gradlew_tasks () {
if [[ -f build.gradle ]]; then if [[ -f build.gradle ]]; then
_gradle_arguments _gradle_arguments
if _gradle_does_task_list_need_generating; then if _gradle_does_task_list_need_generating; then
_gradle_parse_tasks "$(./gradlew tasks --all)" > .gradletasknamecache _gradle_parse_and_extract_tasks "$(./gradlew tasks --all)" > .gradletasknamecache
fi fi
compadd -X "==== Gradlew Tasks ====" $(cat .gradletasknamecache) compadd -X "==== Gradlew Tasks ====" $(cat .gradletasknamecache)
fi fi

View file

@ -31,6 +31,10 @@ _1st_arguments=(
"domains\:add":"add a custom domain to an app" "domains\:add":"add a custom domain to an app"
"domains\:remove":"remove a custom domain from an app" "domains\:remove":"remove a custom domain from an app"
"domains\:clear":"remove all custom domains from an app" "domains\:clear":"remove all custom domains from an app"
"features":"list available app features"
"features\:disable":"disables a feature"
"features\:enable":"enables an feature"
"features\:info":"displays additional information about feature"
"help":"list available commands or display help for a specific command" "help":"list available commands or display help for a specific command"
"keys":"display keys for the current user" "keys":"display keys for the current user"
"keys\:add":"add a key for the current user" "keys\:add":"add a key for the current user"
@ -144,5 +148,4 @@ _arguments \
'(--app)--app[the app name]' \ '(--app)--app[the app name]' \
'(--remote)--remote[the remote name]' \ '(--remote)--remote[the remote name]' \
'(--help)--help[help about the current command]' \ '(--help)--help[help about the current command]' \
&& return 0 && return 0

View file

@ -244,7 +244,7 @@ _history-substring-search-end() {
_history_substring_search_result=$BUFFER _history_substring_search_result=$BUFFER
# the search was succesful so display the result properly by clearing away # the search was successful so display the result properly by clearing away
# existing highlights and moving the cursor to the end of the result buffer # existing highlights and moving the cursor to the end of the result buffer
if [[ $_history_substring_search_refresh_display -eq 1 ]]; then if [[ $_history_substring_search_refresh_display -eq 1 ]]; then
region_highlight=() region_highlight=()

View file

@ -86,6 +86,9 @@ case $state in
(test) (test)
_files _files
;; ;;
(run)
_files
;;
esac esac
;; ;;
esac esac

View file

@ -22,8 +22,7 @@ RESET_FORMATTING=`tput sgr0`
# Wrapper function for Maven's mvn command. # Wrapper function for Maven's mvn command.
mvn-color() mvn-color() {
{
( (
# Filter mvn output using sed. Before filtering set the locale to C, so invalid characters won't break some sed implementations # Filter mvn output using sed. Before filtering set the locale to C, so invalid characters won't break some sed implementations
unset LANG unset LANG
@ -65,8 +64,9 @@ alias mvns='mvn site'
alias mvnsrc='mvn dependency:sources' alias mvnsrc='mvn dependency:sources'
alias mvndocs='mvn dependency:resolve -Dclassifier=javadoc' alias mvndocs='mvn dependency:resolve -Dclassifier=javadoc'
function listMavenCompletions { function listMavenCompletions {
reply=( reply=(
# common lifecycle # common lifecycle
clean process-resources compile process-test-resources test-compile test integration-test package verify install deploy site clean process-resources compile process-test-resources test-compile test integration-test package verify install deploy site
@ -111,8 +111,8 @@ function listMavenCompletions {
help:active-profiles help:all-profiles help:describe help:effective-pom help:effective-settings help:evaluate help:expressions help:system help:active-profiles help:all-profiles help:describe help:effective-pom help:effective-settings help:evaluate help:expressions help:system
# release # release
release:clean release:prepare release:rollback release:perform release:stage release:branch release:update-versions release:clean release:prepare release:rollback release:perform release:stage release:branch release:update-versions
# jgitflow # jgitflow
jgitflow:feature-start jgitflow:feature-finish jgitflow:release-start jgitflow:release-finish jgitflow:hotfix-start jgitflow:hotfix-finish jgitflow:build-number jgitflow:feature-start jgitflow:feature-finish jgitflow:release-start jgitflow:release-finish jgitflow:hotfix-start jgitflow:hotfix-finish jgitflow:build-number
# repository # repository
repository:bundle-create repository:bundle-pack repository:bundle-create repository:bundle-pack
# source # source
@ -135,7 +135,7 @@ function listMavenCompletions {
tomcat6:run tomcat6:run-war tomcat6:run-war-only tomcat6:stop tomcat6:deploy tomcat6:undeploy tomcat6:run tomcat6:run-war tomcat6:run-war-only tomcat6:stop tomcat6:deploy tomcat6:undeploy
# tomcat7 # tomcat7
tomcat7:run tomcat7:run-war tomcat7:run-war-only tomcat7:deploy tomcat7:run tomcat7:run-war tomcat7:run-war-only tomcat7:deploy
# tomee # tomee
tomee:run tomee:run-war tomee:run-war-only tomee:stop tomee:deploy tomee:undeploy tomee:run tomee:run-war tomee:run-war-only tomee:stop tomee:deploy tomee:undeploy
# spring-boot # spring-boot
spring-boot:run spring-boot:repackage spring-boot:run spring-boot:repackage
@ -173,7 +173,8 @@ function listMavenCompletions {
flyway:clean flyway:history flyway:init flyway:migrate flyway:status flyway:validate flyway:clean flyway:history flyway:init flyway:migrate flyway:status flyway:validate
# gwt # gwt
gwt:browser gwt:clean gwt:compile gwt:compile-report gwt:css gwt:debug gwt:eclipse gwt:eclipseTest gwt:generateAsync gwt:help gwt:i18n gwt:mergewebxml gwt:resources gwt:run gwt:sdkInstall gwt:source-jar gwt:soyc gwt:test gwt:browser gwt:clean gwt:compile gwt:compile-report gwt:css gwt:debug gwt:eclipse gwt:eclipseTest gwt:generateAsync gwt:help gwt:i18n gwt:mergewebxml gwt:resources gwt:run gwt:sdkInstall gwt:source-jar gwt:soyc gwt:test
# asciidoctor
asciidoctor:process-asciidoc asciidoctor:auto-refresh asciidoctor:http asciidoctor:zip
# options # options
-Dmaven.test.skip=true -DskipTests -DskipITs -Dmaven.surefire.debug -DenableCiProfile -Dpmd.skip=true -Dcheckstyle.skip=true -Dtycho.mode=maven -Dmaven.test.failure.ignore=true -DgroupId= -DartifactId= -Dversion= -Dpackaging=jar -Dfile= -Dmaven.test.skip=true -DskipTests -DskipITs -Dmaven.surefire.debug -DenableCiProfile -Dpmd.skip=true -Dcheckstyle.skip=true -Dtycho.mode=maven -Dmaven.test.failure.ignore=true -DgroupId= -DartifactId= -Dversion= -Dpackaging=jar -Dfile=

View file

@ -1,5 +1,6 @@
# Open the node api for your current version to the optional section. # Open the node api for your current version to the optional section.
# TODO: Make the section part easier to use. # TODO: Make the section part easier to use.
function node-docs { function node-docs {
open_command "http://nodejs.org/docs/$(node --version)/api/all.html#all_$1" local section=${1:-all}
open_command "https://nodejs.org/docs/$(node --version)/api/$section.html"
} }

View file

@ -184,6 +184,7 @@ function vncviewer() {
# iTunes control function # iTunes control function
function itunes() { function itunes() {
local opt=$1 local opt=$1
local playlist=$2
shift shift
case "$opt" in case "$opt" in
launch|play|pause|stop|rewind|resume|quit) launch|play|pause|stop|rewind|resume|quit)
@ -200,6 +201,19 @@ function itunes() {
vol) vol)
opt="set sound volume to $1" #$1 Due to the shift opt="set sound volume to $1" #$1 Due to the shift
;; ;;
playlist)
# Inspired by: https://gist.github.com/nakajijapan/ac8b45371064ae98ea7f
if [[ ! -z "$playlist" ]]; then
osascript -e 'tell application "iTunes"' -e "set new_playlist to \"$playlist\" as string" -e "play playlist new_playlist" -e "end tell" 2>/dev/null;
if [[ $? -eq 0 ]]; then
opt="play"
else
opt="stop"
fi
else
opt="set allPlaylists to (get name of every playlist)"
fi
;;
playing|status) playing|status)
local state=`osascript -e 'tell application "iTunes" to player state as string'` local state=`osascript -e 'tell application "iTunes" to player state as string'`
if [[ "$state" = "playing" ]]; then if [[ "$state" = "playing" ]]; then
@ -250,6 +264,7 @@ EOF
echo "\tshuf|shuffle [on|off|toggle]\tSet shuffled playback. Default: toggle. Note: toggle doesn't support the MiniPlayer." echo "\tshuf|shuffle [on|off|toggle]\tSet shuffled playback. Default: toggle. Note: toggle doesn't support the MiniPlayer."
echo "\tvol\tSet the volume, takes an argument from 0 to 100" echo "\tvol\tSet the volume, takes an argument from 0 to 100"
echo "\tplaying|status\tShow what song is currently playing in iTunes." echo "\tplaying|status\tShow what song is currently playing in iTunes."
echo "\tplaylist [playlist name]\t Play specific playlist"
echo "\thelp\tshow this message and exit" echo "\thelp\tshow this message and exit"
return 0 return 0
;; ;;
@ -323,7 +338,7 @@ function spotify() {
if [ $# = 0 ]; then if [ $# = 0 ]; then
showHelp; showHelp;
else else
if [ "$(osascript -e 'application "Spotify" is running')" = "false" ]; then if [ "$1" != "quit" ] && [ "$(osascript -e 'application "Spotify" is running')" = "false" ]; then
osascript -e 'tell application "Spotify" to activate' osascript -e 'tell application "Spotify" to activate'
sleep 2 sleep 2
fi fi
@ -413,9 +428,13 @@ function spotify() {
break ;; break ;;
"quit" ) "quit" )
cecho "Quitting Spotify."; if [ "$(osascript -e 'application "Spotify" is running')" = "false" ]; then
osascript -e 'tell application "Spotify" to quit'; cecho "Spotify was not running."
exit 1 ;; else
cecho "Closing Spotify.";
osascript -e 'tell application "Spotify" to quit';
fi
break ;;
"next" ) "next" )
cecho "Going to next track." ; cecho "Going to next track." ;
@ -470,7 +489,7 @@ function spotify() {
"pos" ) "pos" )
cecho "Adjusting Spotify play position." cecho "Adjusting Spotify play position."
osascript -e "tell application \"Spotify\" to set player position to $2"; osascript -e "tell application \"Spotify\" to set player position to $2";
break;; break ;;
"status" ) "status" )
showStatus; showStatus;

View file

@ -1,14 +1,26 @@
# React Native # React Native plugin
**Maintainer:** [BilalBudhani](https://github.com/BilalBudhani) This plugin adds completion for [`react-native`](https://facebook.github.io/react-native/).
It also defines a few [aliases](#aliases) for the commands more frequently used.
### List of Aliases To enable, add `react-native` to your `plugins` array in your zshrc file:
Alias | React Native command ```zsh
------|--------------------- plugins=(... react-native)
**rnand** | *react-native run-android* ```
**rnios** | *react-native run-ios*
**rnios4s** | *react-native run-ios --simulator "iPhone 4s"*
**rnios5** | *react-native run-ios --simulator "iPhone 5"*
**rnios5s** | *react-native run-ios --simulator "iPhone 5s"*
## Aliases
| Alias | React Native command |
|:------------|:-----------------------------------------------|
| **rn** | `react-native` |
| **rns** | `react-native start` |
| **rnlink** | `react-native link` |
| _App testing_ |
| **rnand** | `react-native run-android` |
| **rnios** | `react-native run-ios` |
| **rnios4s** | `react-native run-ios --simulator "iPhone 4s"` |
| **rnios5** | `react-native run-ios --simulator "iPhone 5"` |
| **rnios5s** | `react-native run-ios --simulator "iPhone 5s"` |
| **rnios6** | `react-native run-ios --simulator "iPhone 6"` |
| **rnios6s** | `react-native run-ios --simulator "iPhone 6s"` |

View file

@ -3,12 +3,21 @@
local -a _1st_arguments local -a _1st_arguments
_1st_arguments=( _1st_arguments=(
'init:<ProjectName> generates a new project and installs its dependencies'
'android:creates an empty android project'
'start:starts the webserver' 'start:starts the webserver'
'bundle:builds the javascript bundle for offline use' 'run-ios:builds your app and starts it on iOS simulator'
'new-library:generates a native library bridge'
'android:generates an Android project for your app'
'run-android:builds your app and starts it on a connected Android emulator or device' 'run-android:builds your app and starts it on a connected Android emulator or device'
'upgrade:upgrade your apps template files to the latest version; run this after updating the react-native version in your package.json and running npm install' 'new-library:generates a native library bridge'
'bundle:builds the javascript bundle for offline use'
'unbundle:builds javascript as "unbundle" for offline use'
'link:[options] <packageName> links all native dependencies'
'unlink:[options] <packageName> unlink native dependency'
'install:[options] <packageName> install and link native dependencies'
'uninstall:[options] <packageName> uninstall and unlink native dependencies'
"upgrade:upgrade your app's template files to the latest version; run this after updating the react-native version in your package.json and running npm install"
'log-android:starts adb logcat'
'log-ios:starts iOS device syslog tail'
) )

View file

@ -1,9 +1,11 @@
alias rn='react-native'
alias rns='react-native start'
alias rnlink='react-native link'
alias rnand='react-native run-android' alias rnand='react-native run-android'
alias rnios='react-native run-ios'
alias rnios4s='react-native run-ios --simulator "iPhone 4s"' alias rnios4s='react-native run-ios --simulator "iPhone 4s"'
alias rnios5='react-native run-ios --simulator "iPhone 5"' alias rnios5='react-native run-ios --simulator "iPhone 5"'
alias rnios5s='react-native run-ios --simulator "iPhone 5s"' alias rnios5s='react-native run-ios --simulator "iPhone 5s"'
alias rnios6='react-native run-ios --simulator "iPhone 6"' alias rnios6='react-native run-ios --simulator "iPhone 6"'
alias rnios6s='react-native run-ios --simulator "iPhone 6s"' alias rnios6s='react-native run-ios --simulator "iPhone 6s"'
alias rnios='react-native run-ios'
alias rnlink='react-native link'

View file

@ -152,10 +152,10 @@ Y_opts=(
"-Ydump-classes+[Dump the generated bytecode to .class files (useful for reflective compilation that utilizes in-memory classloaders)]:output directory:_files -/" "-Ydump-classes+[Dump the generated bytecode to .class files (useful for reflective compilation that utilizes in-memory classloaders)]:output directory:_files -/"
"-Yeta-expand-keeps-star[Eta-expand varargs methods to T* rather than Seq[T]. This is a temporary option to ease transition.]" "-Yeta-expand-keeps-star[Eta-expand varargs methods to T* rather than Seq[T]. This is a temporary option to ease transition.]"
"-Ygen-javap+[Generate a parallel output directory of .javap files]:output directory:_files -/" "-Ygen-javap+[Generate a parallel output directory of .javap files]:output directory:_files -/"
"-Yinfer-argument-types[Infer types for arguments of overriden methods]" "-Yinfer-argument-types[Infer types for arguments of overridden methods]"
"-Yinline[Perform inlining when possible]" "-Yinline[Perform inlining when possible]"
"-Yinline-handlers[Perform exception handler inlining when possible]" "-Yinline-handlers[Perform exception handler inlining when possible]"
"-Yinline-warnings[Emit inlining warnings (normally surpressed due to high volume)]" "-Yinline-warnings[Emit inlining warnings (normally suppressed due to high volume)]"
"-Yinvalidate+[Invalidate classpath entry before run]:classpath entry" "-Yinvalidate+[Invalidate classpath entry before run]:classpath entry"
"-Ylinearizer\:-[Linearizer to use (default\: rpo)]:linearizer:(normal dfs rpo dump)" "-Ylinearizer\:-[Linearizer to use (default\: rpo)]:linearizer:(normal dfs rpo dump)"
"-Ylog-classpath[Output information about what classpath is being applied]" "-Ylog-classpath[Output information about what classpath is being applied]"

View file

@ -1,4 +1,4 @@
#Alias for Zypper according to the offical Zypper's alias #Alias for Zypper according to the official Zypper's alias
#Main commands #Main commands
alias z='sudo zypper' #call zypper alias z='sudo zypper' #call zypper
@ -51,7 +51,7 @@ alias zrr='sudo zypper rr' #remove repositories
alias zas='sudo zypper as' #adds a service specified by URI to the system alias zas='sudo zypper as' #adds a service specified by URI to the system
alias zms='sudo zypper ms' #modify properties of specified services alias zms='sudo zypper ms' #modify properties of specified services
alias zrefs='sudo zypper refs' #refreshing a service mean executing the service's special task alias zrefs='sudo zypper refs' #refreshing a service mean executing the service's special task
alias zrs='sudo zypper rs' #remove specified repository index service from the sytem alias zrs='sudo zypper rs' #remove specified repository index service from the system
alias zls='sudo zypper ls' #list services defined on the system alias zls='sudo zypper ls' #list services defined on the system
#Package Locks Management commands #Package Locks Management commands

22
plugins/swiftpm/README.md Normal file
View file

@ -0,0 +1,22 @@
# Swift Package Manager
## Description
This plugin provides a few utilities that make you faster on your daily work with the [Swift Package Manager](https://github.com/apple/swift-package-manager).
To start using it, add the `swiftpm` plugin to your `plugins` array in `~/.zshrc`:
```zsh
plugins=(... swiftpm)
```
## Aliases
| Alias | Description | Command |
|-------|-------------------------------------|------------------------------------|
| `spi` | Initialize a new package | `swift package init` |
| `spf` | Fetch package dependencies | `swift package fetch` |
| `spu` | Update package dependencies | `swift package update` |
| `spx` | Generates an Xcode project | `swift package generate-xcodeproj` |
| `sps` | Print the resolved dependency graph | `swift package show-dependencies` |
| `spd` | Print parsed Package.swift as JSON | `swift package dump-package` |

View file

@ -0,0 +1,8 @@
# Some aliases to make your life with the Swift Package Manager faster ✌️
alias spi='swift package init'
alias spf='swift package fetch'
alias spu='swift package update'
alias spx='swift package generate-xcodeproj'
alias sps='swift package show-dependencies'
alias spd='swift package dump-package'

View file

@ -98,7 +98,7 @@ __push() {
'-token=[(token) Atlas API token to use to authorize the upload. If blank or unspecified, the ATLAS_TOKEN environmental variable will be used.]' \ '-token=[(token) Atlas API token to use to authorize the upload. If blank or unspecified, the ATLAS_TOKEN environmental variable will be used.]' \
'-var=[("foo=bar") Set the value of a variable for the Terraform configuration.]' \ '-var=[("foo=bar") Set the value of a variable for the Terraform configuration.]' \
'-var-file=[(foo) Set the value of variables using a variable file.]' \ '-var-file=[(foo) Set the value of variables using a variable file.]' \
'-vcs=[(true) If true (default), then Terraform will detect if a VCS is in use, such as Git, and will only upload files that are comitted to version control. If no version control system is detected, Terraform will upload all files in path (parameter to the command).]' '-vcs=[(true) If true (default), then Terraform will detect if a VCS is in use, such as Git, and will only upload files that are committed to version control. If no version control system is detected, Terraform will upload all files in path (parameter to the command).]'
} }
__refresh() { __refresh() {

View file

@ -10,7 +10,7 @@ By now you already can guess almost all aliases
There are two exeptions since ... There are two exeptions since ...
agu = sudo Apt-Get Update - we have ... agu = sudo Apt-Get Update - we have ...
agug = sudo Apt-Get UpGrade - as the exeptional 4 letter alias for a single command. agug = sudo Apt-Get UpGrade - as the exceptional 4 letter alias for a single command.
afs = Apt-File Search --regexp - this has the regexp switch on without being represented in the alias, I guess this makes sense since the debian plugin has it, I never used that command. afs = Apt-File Search --regexp - this has the regexp switch on without being represented in the alias, I guess this makes sense since the debian plugin has it, I never used that command.

View file

@ -69,7 +69,7 @@ alias mydeb='time dpkg-buildpackage -rfakeroot -us -uc'
# apt-add-repository with automatic install/upgrade of the desired package # apt-add-repository with automatic install/upgrade of the desired package
# Usage: aar ppa:xxxxxx/xxxxxx [packagename] # Usage: aar ppa:xxxxxx/xxxxxx [packagename]
# If packagename is not given as 2nd argument the function will ask for it and guess the default by taking # If packagename is not given as 2nd argument the function will ask for it and guess the default by taking
# the part after the / from the ppa name wich is sometimes the right name for the package you want to install # the part after the / from the ppa name which is sometimes the right name for the package you want to install
aar() { aar() {
if [ -n "$2" ]; then if [ -n "$2" ]; then
PACKAGE=$2 PACKAGE=$2
@ -108,7 +108,7 @@ apt-history () {
awk '{print $4"="$5}' awk '{print $4"="$5}'
;; ;;
list) list)
zcat $(ls -rt /var/log/dpkg*) zgrep --no-filename '' $(ls -rt /var/log/dpkg*)
;; ;;
*) *)
echo "Parameters:" echo "Parameters:"

View file

@ -15,6 +15,7 @@ function web_search() {
github "https://github.com/search?q=" github "https://github.com/search?q="
baidu "https://www.baidu.com/s?wd=" baidu "https://www.baidu.com/s?wd="
ecosia "https://www.ecosia.org/search?q=" ecosia "https://www.ecosia.org/search?q="
goodreads "https://www.goodreads.com/search?q="
) )
# check whether the search engine is supported # check whether the search engine is supported
@ -47,6 +48,7 @@ alias yandex='web_search yandex'
alias github='web_search github' alias github='web_search github'
alias baidu='web_search baidu' alias baidu='web_search baidu'
alias ecosia='web_search ecosia' alias ecosia='web_search ecosia'
alias goodreads='web_search goodreads'
#add your own !bang searches here #add your own !bang searches here
alias wiki='web_search duckduckgo \!w' alias wiki='web_search duckduckgo \!w'

View file

@ -0,0 +1,81 @@
alias yi="yarn install"
_yarn ()
{
local -a _1st_arguments _dopts _dev _production
local expl
typeset -A opt_args
_dopts=(
'(--force)--force[This refetches all packages, even ones that were previously installed.]'
)
_installopts=(
'(--flat)--flat[Only allow one version of a package. On the first run this will prompt you to choose a single version for each package that is depended on at multiple version ranges.]'
'(--har)--har[Outputs an HTTP archive from all the network requests performed during the installation.]'
'(--no-lockfile)--no-lockfile[Dont read or generate a yarn.lock lockfile.]'
'(--pure-lockfile)--pure-lockfile[Dont generate a yarn.lock lockfile.]'
)
_dev=('(--dev)--dev[Save installed packages into the project"s package.json devDependencies]')
_production=('(--production)--production[Do not install project devDependencies]')
_1st_arguments=(
'help:Display help information about yarn' \
'init:Initialize for the development of a package.' \
'add:Add a package to use in your current package.' \
'install:Install all the dependencies listed within package.json in the local node_modules folder.' \
'publish:Publish a package to a package manager.' \
'remove:Remove a package that will no longer be used in your current package.' \
'cache:Clear the local cache. It will be populated again the next time yarn or yarn install is run.' \
'clean:Frees up space by removing unnecessary files and folders from dependencies.' \
'check:Verifies that versions of the package dependencies in the current projects package.json matches that of yarns lock file.' \
'ls:List all installed packages.' \
'global:Makes binaries available to use on your operating system.' \
'info:<package> [<field>] - fetch information about a package and return it in a tree format.' \
'outdated:Checks for outdated package dependencies.' \
'run:Runs a defined package script.' \
'self-update:Updates Yarn to the latest version.' \
'upgrade:Upgrades packages to their latest version based on the specified range.' \
'why:<query> - Show information about why a package is installed.'
)
_arguments \
'*:: :->subcmds' && return 0
if (( CURRENT == 1 )); then
_describe -t commands "yarn subcommand" _1st_arguments
return
fi
case "$words[1]" in
add)
_arguments \
$_dopts \
$_dev \
$_production
;;
install)
_arguments \
$_installopts \
$_dopts \
$_dev \
$_no_color \
$_production
;;
update)
_arguments \
$_dopts
;;
remove)
_arguments \
$_dopts
;;
*)
_arguments \
;;
esac
}
compdef _yarn yarn

View file

@ -125,7 +125,7 @@ ENVIRONMENT
Directories must be full paths without trailing slashes. Directories must be full paths without trailing slashes.
The environment variable $_Z_OWNER can be set to your username, to The environment variable $_Z_OWNER can be set to your username, to
allow usage of z when your sudo enviroment keeps $HOME set. allow usage of z when your sudo environment keeps $HOME set.
FILES FILES
Data is stored in $HOME/.z. This can be overridden by setting the Data is stored in $HOME/.z. This can be overridden by setting the

View file

@ -151,7 +151,7 @@ directory trees to exclude from tracking. \fB$HOME\fR is always excluded.
Directories must be full paths without trailing slashes. Directories must be full paths without trailing slashes.
.P .P
The environment variable \fB$_Z_OWNER\fR can be set to your username, to The environment variable \fB$_Z_OWNER\fR can be set to your username, to
allow usage of \fBz\fR when your sudo enviroment keeps \fB$HOME\fR set. allow usage of \fBz\fR when your sudo environment keeps \fB$HOME\fR set.
.SH .SH
FILES FILES
Data is stored in \fB$HOME/.z\fR. This can be overridden by setting the Data is stored in \fB$HOME/.z\fR. This can be overridden by setting the

View file

@ -73,7 +73,7 @@ source $ZSH/oh-my-zsh.sh
# export ARCHFLAGS="-arch x86_64" # export ARCHFLAGS="-arch x86_64"
# ssh # ssh
# export SSH_KEY_PATH="~/.ssh/dsa_id" # export SSH_KEY_PATH="~/.ssh/rsa_id"
# Set personal aliases, overriding those provided by oh-my-zsh libs, # Set personal aliases, overriding those provided by oh-my-zsh libs,
# plugins, and themes. Aliases can be placed here, though oh-my-zsh # plugins, and themes. Aliases can be placed here, though oh-my-zsh

View file

@ -27,7 +27,7 @@ else
fi fi
# git settings # git settings
ZSH_THEME_GIT_PROMPT_PREFIX="$FG[075](branch:" ZSH_THEME_GIT_PROMPT_PREFIX="$FG[075]($FG[078]"
ZSH_THEME_GIT_PROMPT_CLEAN="" ZSH_THEME_GIT_PROMPT_CLEAN=""
ZSH_THEME_GIT_PROMPT_DIRTY="$my_orange*%{$reset_color%}" ZSH_THEME_GIT_PROMPT_DIRTY="$my_orange*%{$reset_color%}"
ZSH_THEME_GIT_PROMPT_SUFFIX="$FG[075])%{$reset_color%}" ZSH_THEME_GIT_PROMPT_SUFFIX="$FG[075])%{$reset_color%}"

View file

@ -10,7 +10,7 @@ else
local user_symbol='$' local user_symbol='$'
fi fi
local current_dir='%{$terminfo[bold]$fg[blue]%} %~%{$reset_color%}' local current_dir='%{$terminfo[bold]$fg[blue]%}%~%{$reset_color%}'
local rvm_ruby='' local rvm_ruby=''
if which rvm-prompt &> /dev/null; then if which rvm-prompt &> /dev/null; then
rvm_ruby='%{$fg[red]%}$(rvm-prompt i v g)%{$reset_color%}' rvm_ruby='%{$fg[red]%}$(rvm-prompt i v g)%{$reset_color%}'

View file

@ -17,7 +17,7 @@ setopt prompt_subst
autoload -U add-zsh-hook autoload -U add-zsh-hook
autoload -Uz vcs_info autoload -Uz vcs_info
#use extended color pallete if available #use extended color palette if available
if [[ $TERM = *256color* || $TERM = *rxvt* ]]; then if [[ $TERM = *256color* || $TERM = *rxvt* ]]; then
turquoise="%F{81}" turquoise="%F{81}"
orange="%F{166}" orange="%F{166}"

View file

@ -1,106 +1,10 @@
#!/usr/bin/env zsh print -P '%F{yellow}'Oh My Zsh pure theme:
cat <<-EOF
# ------------------------------------------------------------------------------ The pure theme has been renamed as 'refined' as per the original author's
# request. Change your ZSH_THEME to 'refined' to avoid seeing this warning.
# Pure - A minimal and beautiful theme for oh-my-zsh
#
# Based on the custom Zsh-prompt of the same name by Sindre Sorhus. A huge
# thanks goes out to him for designing the fantastic Pure prompt in the first
# place! I'd also like to thank Julien Nicoulaud for his "nicoulaj" theme from
# which I've borrowed both some ideas and some actual code. You can find out
# more about both of these fantastic two people here:
#
# Sindre Sorhus
# Github: https://github.com/sindresorhus
# Twitter: https://twitter.com/sindresorhus
#
# Julien Nicoulaud
# Github: https://github.com/nicoulaj
# Twitter: https://twitter.com/nicoulaj
#
# ------------------------------------------------------------------------------
# Set required options EOF
# print -P '%f'
setopt prompt_subst
# Load required modules source ${0:h:A}/refined.zsh-theme
#
autoload -Uz vcs_info
# Set vcs_info parameters
#
zstyle ':vcs_info:*' enable hg bzr git
zstyle ':vcs_info:*:*' unstagedstr '!'
zstyle ':vcs_info:*:*' stagedstr '+'
zstyle ':vcs_info:*:*' formats "$FX[bold]%r$FX[no-bold]/%S" "%s/%b" "%%u%c"
zstyle ':vcs_info:*:*' actionformats "$FX[bold]%r$FX[no-bold]/%S" "%s/%b" "%u%c (%a)"
zstyle ':vcs_info:*:*' nvcsformats "%~" "" ""
# Fastest possible way to check if repo is dirty
#
git_dirty() {
# Check if we're in a git repo
command git rev-parse --is-inside-work-tree &>/dev/null || return
# Check if it's dirty
command git diff --quiet --ignore-submodules HEAD &>/dev/null; [ $? -eq 1 ] && echo "*"
}
# Display information about the current repository
#
repo_information() {
echo "%F{blue}${vcs_info_msg_0_%%/.} %F{8}$vcs_info_msg_1_`git_dirty` $vcs_info_msg_2_%f"
}
# Displays the exec time of the last command if set threshold was exceeded
#
cmd_exec_time() {
local stop=`date +%s`
local start=${cmd_timestamp:-$stop}
let local elapsed=$stop-$start
[ $elapsed -gt 5 ] && echo ${elapsed}s
}
# Get the intial timestamp for cmd_exec_time
#
preexec() {
cmd_timestamp=`date +%s`
}
# Output additional information about paths, repos and exec time
#
precmd() {
vcs_info # Get version control info before we start outputting stuff
print -P "\n$(repo_information) %F{yellow}$(cmd_exec_time)%f"
}
# Define prompts
#
PROMPT="%(?.%F{magenta}.%F{red})%f " # Display a red prompt char on failure
RPROMPT="%F{8}${SSH_TTY:+%n@%m}%f" # Display username if connected via SSH
# ------------------------------------------------------------------------------
#
# List of vcs_info format strings:
#
# %b => current branch
# %a => current action (rebase/merge)
# %s => current version control system
# %r => name of the root directory of the repository
# %S => current path relative to the repository root directory
# %m => in case of Git, show information about stashes
# %u => show unstaged changes in the repository
# %c => show staged changes in the repository
#
# List of prompt format strings:
#
# prompt:
# %F => color dict
# %f => reset color
# %~ => current path
# %* => time
# %n => username
# %m => shortname host
# %(?..) => prompt conditional - %(condition.true.false)
#
# ------------------------------------------------------------------------------

106
themes/refined.zsh-theme Normal file
View file

@ -0,0 +1,106 @@
#!/usr/bin/env zsh
# ------------------------------------------------------------------------------
#
# Pure - A minimal and beautiful theme for oh-my-zsh
#
# Based on the custom Zsh-prompt of the same name by Sindre Sorhus. A huge
# thanks goes out to him for designing the fantastic Pure prompt in the first
# place! I'd also like to thank Julien Nicoulaud for his "nicoulaj" theme from
# which I've borrowed both some ideas and some actual code. You can find out
# more about both of these fantastic two people here:
#
# Sindre Sorhus
# Github: https://github.com/sindresorhus
# Twitter: https://twitter.com/sindresorhus
#
# Julien Nicoulaud
# Github: https://github.com/nicoulaj
# Twitter: https://twitter.com/nicoulaj
#
# ------------------------------------------------------------------------------
# Set required options
#
setopt prompt_subst
# Load required modules
#
autoload -Uz vcs_info
# Set vcs_info parameters
#
zstyle ':vcs_info:*' enable hg bzr git
zstyle ':vcs_info:*:*' unstagedstr '!'
zstyle ':vcs_info:*:*' stagedstr '+'
zstyle ':vcs_info:*:*' formats "$FX[bold]%r$FX[no-bold]/%S" "%s/%b" "%%u%c"
zstyle ':vcs_info:*:*' actionformats "$FX[bold]%r$FX[no-bold]/%S" "%s/%b" "%u%c (%a)"
zstyle ':vcs_info:*:*' nvcsformats "%~" "" ""
# Fastest possible way to check if repo is dirty
#
git_dirty() {
# Check if we're in a git repo
command git rev-parse --is-inside-work-tree &>/dev/null || return
# Check if it's dirty
command git diff --quiet --ignore-submodules HEAD &>/dev/null; [ $? -eq 1 ] && echo "*"
}
# Display information about the current repository
#
repo_information() {
echo "%F{blue}${vcs_info_msg_0_%%/.} %F{8}$vcs_info_msg_1_`git_dirty` $vcs_info_msg_2_%f"
}
# Displays the exec time of the last command if set threshold was exceeded
#
cmd_exec_time() {
local stop=`date +%s`
local start=${cmd_timestamp:-$stop}
let local elapsed=$stop-$start
[ $elapsed -gt 5 ] && echo ${elapsed}s
}
# Get the initial timestamp for cmd_exec_time
#
preexec() {
cmd_timestamp=`date +%s`
}
# Output additional information about paths, repos and exec time
#
precmd() {
vcs_info # Get version control info before we start outputting stuff
print -P "\n$(repo_information) %F{yellow}$(cmd_exec_time)%f"
}
# Define prompts
#
PROMPT="%(?.%F{magenta}.%F{red})%f " # Display a red prompt char on failure
RPROMPT="%F{8}${SSH_TTY:+%n@%m}%f" # Display username if connected via SSH
# ------------------------------------------------------------------------------
#
# List of vcs_info format strings:
#
# %b => current branch
# %a => current action (rebase/merge)
# %s => current version control system
# %r => name of the root directory of the repository
# %S => current path relative to the repository root directory
# %m => in case of Git, show information about stashes
# %u => show unstaged changes in the repository
# %c => show staged changes in the repository
#
# List of prompt format strings:
#
# prompt:
# %F => color dict
# %f => reset color
# %~ => current path
# %* => time
# %n => username
# %m => shortname host
# %(?..) => prompt conditional - %(condition.true.false)
#
# ------------------------------------------------------------------------------

View file

@ -19,7 +19,7 @@ setopt prompt_subst
autoload -U add-zsh-hook autoload -U add-zsh-hook
autoload -Uz vcs_info autoload -Uz vcs_info
#use extended color pallete if available #use extended color palette if available
if [[ $terminfo[colors] -ge 256 ]]; then if [[ $terminfo[colors] -ge 256 ]]; then
turquoise="%F{81}" turquoise="%F{81}"
orange="%F{166}" orange="%F{166}"

View file

@ -36,7 +36,7 @@ local c12=$(printf "\e[38;5;142m\e[1m")
local c13=$(printf "\e[38;5;196m\e[1m") local c13=$(printf "\e[38;5;196m\e[1m")
# We dont want to use the extended colorset in the TTY / VC. # We don't want to use the extended colorset in the TTY / VC.
if [ "$TERM" = "linux" ]; then if [ "$TERM" = "linux" ]; then
c1=$( printf "\e[34;1m") c1=$( printf "\e[34;1m")
c2=$( printf "\e[35m") c2=$( printf "\e[35m")
@ -71,7 +71,7 @@ prompt_jnrowe_precmd () {
PROMPT='%{$fg_bold[green]%}%p%{$reset_color%}${vcs_info_msg_0_}${dir_status} ${ret_status}%{$reset_color%} PROMPT='%{$fg_bold[green]%}%p%{$reset_color%}${vcs_info_msg_0_}${dir_status} ${ret_status}%{$reset_color%}
> ' > '
# modified, to be commited # modified, to be committed
elif [[ $(git diff --cached --name-status 2>/dev/null ) != "" ]]; then elif [[ $(git diff --cached --name-status 2>/dev/null ) != "" ]]; then
dir_status="%{$c1%}%n%{$c4%}@%{$c2%}%m%{$c0%}:%{$c3%}%l%{$c6%}->%{$(zsh_path)%} %{$c0%}(%{$c5%}%?%{$c0%})" dir_status="%{$c1%}%n%{$c4%}@%{$c2%}%m%{$c0%}:%{$c3%}%l%{$c6%}->%{$(zsh_path)%} %{$c0%}(%{$c5%}%?%{$c0%})"
PROMPT='${vcs_info_msg_0_}%{$30%} %{$bg_bold[red]%}%{$fg_bold[cyan]%}C%{$fg_bold[black]%}OMMIT%{$reset_color%} PROMPT='${vcs_info_msg_0_}%{$30%} %{$bg_bold[red]%}%{$fg_bold[cyan]%}C%{$fg_bold[black]%}OMMIT%{$reset_color%}