mirror of
https://github.com/GeorgeSG/dotfiles.git
synced 2026-09-04 00:18:44 +00:00
Compare commits
23
Commits
old-backup
...
mac-os
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a5d09808fd | ||
|
|
b989128158 | ||
|
|
a9a8e34552 | ||
|
|
a56e1a985c | ||
|
|
2dbff7b131 | ||
|
|
8a2ab993d3 | ||
|
|
add6e5ef0a | ||
|
|
73cf235413 | ||
|
|
24f6fea89c | ||
|
|
26c3a5421b | ||
|
|
7f14e3ec5a | ||
|
|
2a67a0ff18 | ||
|
|
17a46268c5 | ||
|
|
38f9aac533 | ||
|
|
0ad029d09d | ||
|
|
5f2b655b0a | ||
|
|
2efb3f2b42 | ||
|
|
a3fdefa1ad | ||
|
|
27d1ebd29e | ||
|
|
0f2a4ef21a | ||
|
|
2f622e5c37 | ||
|
|
4d8c9050ad | ||
|
|
90da387cab |
+8
-26
@@ -20,16 +20,19 @@ alias gbd="git branch -D"
|
||||
alias gm="git mergetool"
|
||||
|
||||
alias tm="tmux -2 attach-session -t "default" || tmux -2 new-session -s \"default\""
|
||||
alias tmv="tmux -2 attach-session -t "vscode" || tmux -2 new-session -s \"vscode\""
|
||||
|
||||
# Editing files
|
||||
alias aliases="vim ~/.bash_aliases"
|
||||
alias aliases="code ~/.bash_aliases"
|
||||
alias vimrc="vim ~/.vimrc"
|
||||
|
||||
# NPM
|
||||
alias npr="npm run"
|
||||
|
||||
# CD-ing to some commonly used folders
|
||||
alias og="cd ~/Git"
|
||||
|
||||
alias sass_watch="sass --watch ./:./"
|
||||
alias s="sublime"
|
||||
alias grep="grep --color=auto"
|
||||
alias c="clear"
|
||||
alias be="bundle exec"
|
||||
@@ -38,33 +41,12 @@ alias share="python -m SimpleHTTPServer"
|
||||
##### Mac OS Specific #####
|
||||
alias showfiles="defaults write com.apple.finder AppleShowAllFiles YES; killall Finder /System/Library/CoreServices/Finder.app"
|
||||
alias hidefiles="defaults write com.apple.finder AppleShowAllFiles NO; killall Finder /System/Library/CoreServices/Finder.app"
|
||||
|
||||
alias cask="brew cask"
|
||||
|
||||
##### Ubuntu/Linux Specific #####
|
||||
# Easier APT
|
||||
alias install="sudo apt-get install"
|
||||
alias purge="sudo apt-get purge"
|
||||
alias search="sudo apt-cache search"
|
||||
alias remove="sudo apt-get remove"
|
||||
alias autoremove="sudo apt-get autoremove"
|
||||
|
||||
# Secondary Monitor
|
||||
alias monitor_enable="xrandr --output CRT1 --auto --right-of LVDS"
|
||||
alias monitor_disable="xrandr --output CRT1 --off"
|
||||
|
||||
# PC Info
|
||||
alias mountinfo="mount | column -t"
|
||||
alias meminfo="free -mlt"
|
||||
alias driveinfo="df -h"
|
||||
|
||||
# Launchers
|
||||
alias lstart="sudo /opt/lampp/lampp start"
|
||||
alias lstop="sudo /opt/lampp/lampp stop"
|
||||
alias pgstart="sudo service postgresql start"
|
||||
alias pgstop="sudo service postgresql stop"
|
||||
|
||||
alias fl="open -a ForkLift"
|
||||
|
||||
if [ -f ~/.bash_local_aliases ]; then
|
||||
. ~/.bash_local_aliases
|
||||
fi
|
||||
|
||||
alias dokku='$HOME/.dokku/contrib/dokku_client.sh'
|
||||
|
||||
+1
-12
@@ -1,12 +1 @@
|
||||
|
||||
[[ -s "$HOME/.profile" ]] && source "$HOME/.profile" # Load the default .profile
|
||||
|
||||
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*
|
||||
|
||||
# if [[ "$TERM" != "screen-256color" ]]
|
||||
# then
|
||||
# tmux -2 attach-session -t "default" || tmux -2 new-session -s "default"
|
||||
# exit
|
||||
# fi
|
||||
|
||||
alias tm="tmux -2 attach-session -t "default" || tmux -2 new-session -s \"default\""
|
||||
source ~/.bashrc
|
||||
|
||||
@@ -1,205 +1,71 @@
|
||||
# ~/.bashrc: executed by bash(1) for non-login shells.
|
||||
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
|
||||
# for examples
|
||||
# Colors
|
||||
PS1='\[\e[1;32m\]\w\[\e[m\]\[\e[1;0m\] \[\e[0m\] \[\e[1;0m\]'
|
||||
export TERM=xterm-256color
|
||||
|
||||
# If not running interactively, don't do anything
|
||||
[ -z "$PS1" ] && return
|
||||
shopt -s autocd
|
||||
shopt -s cdspell
|
||||
# check the window size after each command and, if necessary,
|
||||
# update the values of LINES and COLUMNS.
|
||||
shopt -s checkwinsize
|
||||
|
||||
# Disable Caret-C output
|
||||
stty -ctlecho
|
||||
|
||||
set -o vi
|
||||
bind -m vi-insert "\C-l":clear-screen
|
||||
|
||||
#so as not to be disturbed by Ctrl-S ctrl-Q in terminals:
|
||||
stty -ixon
|
||||
|
||||
######################
|
||||
# History Management #
|
||||
######################
|
||||
|
||||
# append to the history file, don't overwrite it
|
||||
shopt -s histappend
|
||||
|
||||
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
|
||||
HISTSIZE=5000
|
||||
HISTFILESIZE=2000
|
||||
|
||||
# don't put duplicate lines or lines starting with space in the history.
|
||||
# See bash(1) for more options
|
||||
HISTCONTROL=ignoreboth
|
||||
|
||||
# append to the history file, don't overwrite it
|
||||
shopt -s histappend
|
||||
shopt -s autocd
|
||||
|
||||
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
|
||||
HISTSIZE=1000
|
||||
HISTFILESIZE=2000
|
||||
|
||||
# check the window size after each command and, if necessary,
|
||||
# update the values of LINES and COLUMNS.
|
||||
shopt -s checkwinsize
|
||||
|
||||
# If set, the pattern "**" used in a pathname expansion context will
|
||||
# match all files and zero or more directories and subdirectories.
|
||||
#shopt -s globstar
|
||||
|
||||
# make less more friendly for non-text input files, see lesspipe(1)
|
||||
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
|
||||
|
||||
# set variable identifying the chroot you work in (used in the prompt below)
|
||||
if [ -z "$debian_chroot" ] && [ -r /etc/debian_chroot ]; then
|
||||
debian_chroot=$(cat /etc/debian_chroot)
|
||||
if [ -f ~/.bash-git-prompt/share/gitprompt.sh ]; then
|
||||
source ~/.bash-git-prompt/share/gitprompt.sh
|
||||
fi
|
||||
|
||||
# set a fancy prompt (non-color, unless we know we "want" color)
|
||||
case "$TERM" in
|
||||
xterm-color) color_prompt=yes;;
|
||||
esac
|
||||
GIT_PROMPT_ONLY_IN_REPO=1
|
||||
GIT_PROMPT_START="\[\e[1;32m\]\w\[\e[m\]"
|
||||
GIT_PROMPT_END="\[\e[1;m\] \[\e[1;m\]"
|
||||
GIT_PROMPT_THEME=Georgi
|
||||
|
||||
# uncomment for a colored prompt, if the terminal has the capability; turned
|
||||
# off by default to not distract the user: the focus in a terminal window
|
||||
# should be on the output of commands, not on the prompt
|
||||
#force_color_prompt=yes
|
||||
|
||||
force_color_prompt=yes
|
||||
|
||||
if [ -n "$force_color_prompt" ]; then
|
||||
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
|
||||
# We have color support; assume it's compliant with Ecma-48
|
||||
# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
|
||||
# a case would tend to support setf rather than setaf.)
|
||||
color_prompt=yes
|
||||
else
|
||||
color_prompt=
|
||||
fi
|
||||
fi
|
||||
|
||||
# Reset
|
||||
Color_Off="\[\033[0m\]" # Text Reset
|
||||
|
||||
# Regular Colors
|
||||
Black="\[\033[0;30m\]" # Black
|
||||
Red="\[\033[0;31m\]" # Red
|
||||
Green="\[\033[0;32m\]" # Green
|
||||
Yellow="\[\033[0;33m\]" # Yellow
|
||||
Blue="\[\033[0;34m\]" # Blue
|
||||
Purple="\[\033[0;35m\]" # Purple
|
||||
Cyan="\[\033[0;36m\]" # Cyan
|
||||
White="\[\033[0;37m\]" # White
|
||||
|
||||
# Bold
|
||||
BBlack="\[\033[1;30m\]" # Black
|
||||
BRed="\[\033[1;31m\]" # Red
|
||||
BGreen="\[\033[1;32m\]" # Green
|
||||
BYellow="\[\033[1;33m\]" # Yellow
|
||||
BBlue="\[\033[1;34m\]" # Blue
|
||||
BPurple="\[\033[1;35m\]" # Purple
|
||||
BCyan="\[\033[1;36m\]" # Cyan
|
||||
BWhite="\[\033[1;37m\]" # White
|
||||
|
||||
# Underline
|
||||
UBlack="\[\033[4;30m\]" # Black
|
||||
URed="\[\033[4;31m\]" # Red
|
||||
UGreen="\[\033[4;32m\]" # Green
|
||||
UYellow="\[\033[4;33m\]" # Yellow
|
||||
UBlue="\[\033[4;34m\]" # Blue
|
||||
UPurple="\[\033[4;35m\]" # Purple
|
||||
UCyan="\[\033[4;36m\]" # Cyan
|
||||
UWhite="\[\033[4;37m\]" # White
|
||||
|
||||
# Background
|
||||
On_Black="\[\033[40m\]" # Black
|
||||
On_Red="\[\033[41m\]" # Red
|
||||
On_Green="\[\033[42m\]" # Green
|
||||
On_Yellow="\[\033[43m\]" # Yellow
|
||||
On_Blue="\[\033[44m\]" # Blue
|
||||
On_Purple="\[\033[45m\]" # Purple
|
||||
On_Cyan="\[\033[46m\]" # Cyan
|
||||
On_White="\[\033[47m\]" # White
|
||||
|
||||
# High Intensty
|
||||
IBlack="\[\033[0;90m\]" # Black
|
||||
IRed="\[\033[0;91m\]" # Red
|
||||
IGreen="\[\033[0;92m\]" # Green
|
||||
IYellow="\[\033[0;93m\]" # Yellow
|
||||
IBlue="\[\033[0;94m\]" # Blue
|
||||
IPurple="\[\033[0;95m\]" # Purple
|
||||
ICyan="\[\033[0;96m\]" # Cyan
|
||||
IWhite="\[\033[0;97m\]" # White
|
||||
|
||||
# Bold High Intensty
|
||||
BIBlack="\[\033[1;90m\]" # Black
|
||||
BIRed="\[\033[1;91m\]" # Red
|
||||
BIGreen="\[\033[1;92m\]" # Green
|
||||
BIYellow="\[\033[1;93m\]" # Yellow
|
||||
BIBlue="\[\033[1;94m\]" # Blue
|
||||
BIPurple="\[\033[1;95m\]" # Purple
|
||||
BICyan="\[\033[1;96m\]" # Cyan
|
||||
BIWhite="\[\033[1;97m\]" # White
|
||||
|
||||
# High Intensty backgrounds
|
||||
On_IBlack="\[\033[0;100m\]" # Black
|
||||
On_IRed="\[\033[0;101m\]" # Red
|
||||
On_IGreen="\[\033[0;102m\]" # Green
|
||||
On_IYellow="\[\033[0;103m\]" # Yellow
|
||||
On_IBlue="\[\033[0;104m\]" # Blue
|
||||
On_IPurple="\[\033[10;95m\]" # Purple
|
||||
On_ICyan="\[\033[0;106m\]" # Cyan
|
||||
On_IWhite="\[\033[0;107m\]" # White
|
||||
|
||||
# Various variables you might want for your PS1 prompt instead
|
||||
Time12h="\A"
|
||||
Time12a="\@"
|
||||
PathShort="\w"
|
||||
PathFull="\W"
|
||||
NewLine="\n"
|
||||
Jobs="\j"
|
||||
|
||||
if [ "$color_prompt" = yes ]; then
|
||||
PS1='$(git branch &>/dev/null;\
|
||||
if [ $? -eq 0 ]; then \
|
||||
echo "$(echo `git status` | grep "nothing to commit" > /dev/null 2>&1; \
|
||||
if [ "$?" -eq "0" ]; then \
|
||||
# @4 - Clean repository - nothing to commit
|
||||
echo "'$BGreen$PathShort$BCyan'"$(__git_ps1 " (%s)"); \
|
||||
else \
|
||||
# @5 - Changes to working tree
|
||||
echo "'$BGreen$PathShort$IRed'"$(__git_ps1 " (%s)"); \
|
||||
fi)'$BWhite':'$Color_Off' "; \
|
||||
else \
|
||||
# @2 - Prompt when not in GIT repo
|
||||
echo "'$BGreen$PathShort$BWhite':'$Color_Off' "; \
|
||||
fi)'
|
||||
else
|
||||
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
|
||||
fi
|
||||
|
||||
unset color_prompt force_color_prompt
|
||||
|
||||
# If this is an xterm set the title to user@host:dir
|
||||
case "$TERM" in
|
||||
xterm*|rxvt*)
|
||||
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
######################
|
||||
# Aliases #
|
||||
######################
|
||||
|
||||
# enable color support of ls and also add handy aliases
|
||||
if [ -x /usr/bin/dircolors ]; then
|
||||
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
|
||||
alias ls='ls --color=auto'
|
||||
#alias dir='dir --color=auto'
|
||||
#alias vdir='vdir --color=auto'
|
||||
|
||||
alias grep='grep --color=auto'
|
||||
alias fgrep='fgrep --color=auto'
|
||||
alias egrep='egrep --color=auto'
|
||||
fi
|
||||
|
||||
# some more ls aliases
|
||||
alias ll='ls -alF'
|
||||
alias la='ls -A'
|
||||
alias l='ls -CF'
|
||||
|
||||
# Add an "alert" alias for long running commands. Use like so:
|
||||
# sleep 10; alert
|
||||
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
|
||||
|
||||
# Alias definitions.
|
||||
# You may want to put all your additions into a separate file like
|
||||
# ~/.bash_aliases, instead of adding them here directly.
|
||||
# See /usr/share/doc/bash-doc/examples in the bash-doc package.
|
||||
alias ls='ls -G'
|
||||
alias ll='ls -alFG'
|
||||
alias la='ls -AG'
|
||||
alias l='ls -CFG'
|
||||
|
||||
if [ -f ~/.bash_aliases ]; then
|
||||
. ~/.bash_aliases
|
||||
fi
|
||||
|
||||
if [ -f ~/.bash_local_aliases ]; then
|
||||
. ~/.bash_local_aliases
|
||||
fi
|
||||
######################
|
||||
# Completion #
|
||||
######################
|
||||
|
||||
# enable programmable completion features (you don't need to enable
|
||||
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
|
||||
@@ -207,3 +73,19 @@ fi
|
||||
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
|
||||
. /etc/bash_completion
|
||||
fi
|
||||
|
||||
# Git completion
|
||||
if [ -f ~/.git-completion.bash ]; then
|
||||
. ~/.git-completion.bash
|
||||
fi
|
||||
|
||||
######################
|
||||
# Sources & exports #
|
||||
######################
|
||||
|
||||
if [ -f ~/.bashrc_local ]; then
|
||||
. ~/.bashrc_local
|
||||
fi
|
||||
|
||||
# Editor
|
||||
export EDITOR='subl -w'
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
+13
-1
@@ -21,11 +21,13 @@
|
||||
unignore = !git update-index --no-assume-unchanged
|
||||
ignored = !git ls-files -v | grep "^[[:lower:]]"
|
||||
undo = reset --soft HEAD^
|
||||
squash = rebase -i
|
||||
squash = rebase --autostash -i
|
||||
megasquash = "!f() { git rebase --autostash -i `git merge-base --fork-point HEAD master`; }; f"
|
||||
|
||||
# various pretty loggers from various places
|
||||
l = log --pretty=oneline --abbrev-commit
|
||||
lg = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr)%Creset' --abbrev-commit --date=relative
|
||||
lgg = log --graph --pretty=format:'%Creset %s' --abbrev-commit
|
||||
lc = log ORIG_HEAD.. --stat --no-merges
|
||||
# from http://blog.kfish.org/2010/04/git-lola.html
|
||||
lol = log --graph --decorate --pretty=oneline --abbrev-commit
|
||||
@@ -33,6 +35,16 @@
|
||||
ll = log --graph --date=short
|
||||
[push]
|
||||
default = simple
|
||||
[mergetool "sourcetree"]
|
||||
cmd = /Applications/Sourcetree.app/Contents/Resources/opendiff-w.sh \"$LOCAL\" \"$REMOTE\" -ancestor \"$BASE\" -merge \"$MERGED\"
|
||||
trustExitCode = true
|
||||
[diff]
|
||||
tool = default-difftool
|
||||
[difftool "default-difftool"]
|
||||
cmd = code --wait --diff $LOCAL $REMOTE
|
||||
[difftool "sourcetree"]
|
||||
cmd = opendiff \"$LOCAL\" \"$REMOTE\"
|
||||
path =
|
||||
[filter "media"]
|
||||
clean = git media clean %f
|
||||
smudge = git media smudge %f
|
||||
|
||||
Regular → Executable
+38
-24
@@ -6,9 +6,8 @@
|
||||
set -g prefix C-a
|
||||
unbind C-b
|
||||
|
||||
# Start in Zsh
|
||||
set -g default-command '/bin/zsh --login'
|
||||
set -g default-shell /bin/zsh
|
||||
# Start in newer bash
|
||||
set-option -g default-command "/usr/local/bin/bash --login"
|
||||
|
||||
# Disable delay
|
||||
set -sg escape-time 1
|
||||
@@ -27,26 +26,43 @@ setw -g pane-base-index 1
|
||||
set -g default-terminal "screen-256color"
|
||||
|
||||
# Theme
|
||||
set -g status-bg black
|
||||
set -g status-fg white
|
||||
set -g status-left-length 30
|
||||
set -g status-right-length 60
|
||||
#
|
||||
# Colors
|
||||
set -g status-fg white
|
||||
set -g status-bg colour234
|
||||
set -g pane-border-fg colour245
|
||||
set -g pane-active-border-fg colour25
|
||||
set -g message-fg white
|
||||
set -g message-bg colour25
|
||||
set -g message-attr bold
|
||||
|
||||
# Theme "Tomorrow"
|
||||
|
||||
TMUX_PANE_BORDER_FG="#d6d6d6"
|
||||
TMUX_PANE_ACTIVE_BORDER_FG="#3e999f"
|
||||
TMUX_MESSAGE_FG="#3e999f"
|
||||
TMUX_MESSAGE_BG="#d6d6d6"
|
||||
TMUX_STATUS_BG="#efefef"
|
||||
|
||||
TMUX_NAMESPACE_FG="#efefef"
|
||||
TMUX_NAMESPACE_BG="#c82829"
|
||||
TMUX_USERNAME_FG="#efefef"
|
||||
TMUX_USERNAME_BG="#f5871f"
|
||||
|
||||
# Pane borders
|
||||
set -g pane-border-style "fg=$TMUX_PANE_BORDER_FG"
|
||||
set -g pane-active-border-style "fg=$TMUX_PANE_ACTIVE_BORDER_FG"
|
||||
|
||||
# Message in status bar (e.g. Copied successfully)
|
||||
set -g message-style "fg=$TMUX_MESSAGE_FG,bg=$TMUX_MESSAGE_BG"
|
||||
|
||||
# Status bar
|
||||
# set-option -g status-position bottom
|
||||
set -g status-left '#[fg=colour25,bg=white,bold] #S #[fg=colour252,bg=colour238,bold]#[fg=colour245,bg=colour238,bold] #(whoami) #[fg=colour238,bg=colour234,bold]'
|
||||
set -g status-right '#[fg=colour238,bg=colour234,bold]#[fg=colour245,bg=colour238,bold] #H #[fg=colour252,bg=colour238,bold]#[fg=colour25,bg=white,bold] #(date +%H:%M) '
|
||||
set -g window-status-format "#[fg=white,bg=colour234] #I #W "
|
||||
set -g window-status-current-format "#[fg=white,bg=colour25,noreverse,bold] #I #W "
|
||||
set-option -g status-position bottom
|
||||
|
||||
# Status mid style
|
||||
set -g status-style "fg=white,bg=$TMUX_STATUS_BG"
|
||||
|
||||
set -g status-left '#[fg=#(echo $TMUX_NAMESPACE_FG),bg=#(echo $TMUX_NAMESPACE_BG),bold] #S #[fg=#(echo $TMUX_NAMESPACE_BG),bg=#(echo $TMUX_USERNAME_BG),bold]#[fg=#(echo $TMUX_STATUS_BG),bg=#(echo $TMUX_USERNAME_BG),bold] #(whoami) #[fg=#(echo $TMUX_USERNAME_BG),bg=#(echo $TMUX_STATUS_BG),bold]'
|
||||
set -g status-left-length 30
|
||||
|
||||
set -g status-right '#[fg=#(echo $TMUX_USERNAME_BG),bg=#(echo $TMUX_NAMESPACE_FG),bold]#[fg=#(echo $TMUX_NAMESPACE_FG),bg=#(echo $TMUX_USERNAME_BG),bold] #H #[fg=#(echo $TMUX_NAMESPACE_BG),bg=#(echo $TMUX_USERNAME_BG),bold]#[fg=#(echo $TMUX_NAMESPACE_FG),bg=#(echo $TMUX_NAMESPACE_BG),bold] #(date +%H:%M) '
|
||||
set -g status-right-length 60
|
||||
|
||||
# window name options
|
||||
set -g window-status-format "#[fg=#3e999f,bg=#efefef] #I #W "
|
||||
set -g window-status-current-format "#[fg=#efefef,bg=#3e999f,noreverse,bold] #I #W "
|
||||
|
||||
|
||||
# --------------------
|
||||
# Custom keybindings
|
||||
@@ -105,6 +121,4 @@ bind -r L resize-pane -R 5
|
||||
# Copy & Paste
|
||||
bind Escape copy-mode
|
||||
bind p paste-buffer
|
||||
bind -t vi-copy 'v' begin-selection
|
||||
bind C-c run-shell "bash -c 'tmux show-buffer | reattach-to-user-namespace pbcopy'" \; display 'Copied to clipboard'
|
||||
|
||||
bind C-c run-shell "bash -c 'tmux show-buffer | pbcopy'" \; display 'Copied to clipboard'
|
||||
|
||||
Binary file not shown.
@@ -0,0 +1,27 @@
|
||||
class BashGitPrompt < Formula
|
||||
desc "Informative, fancy bash prompt for Git users"
|
||||
homepage "https://github.com/magicmonty/bash-git-prompt"
|
||||
url "https://github.com/magicmonty/bash-git-prompt/archive/2.6.1.tar.gz"
|
||||
sha256 "d2e58eaaae521cbcf3758a38cbc9233ea2e24a47dd907e64cdb514f30bd7b9ed"
|
||||
head "https://github.com/magicmonty/bash-git-prompt.git"
|
||||
|
||||
bottle :unneeded
|
||||
|
||||
def install
|
||||
share.install "gitprompt.sh", "gitprompt.fish", "git-prompt-help.sh",
|
||||
"gitstatus.py", "gitstatus.sh", "gitstatus_pre-1.7.10.sh",
|
||||
"prompt-colors.sh"
|
||||
|
||||
(share/"themes").install Dir["themes/*.bgptheme"], "themes/Custom.bgptemplate"
|
||||
doc.install "README.md"
|
||||
end
|
||||
|
||||
def caveats; <<-EOS.undent
|
||||
You should add the following to your .bashrc (or equivalent):
|
||||
if [ -f "$(brew --prefix bash-git-prompt)/share/gitprompt.sh" ]; then
|
||||
GIT_PROMPT_THEME=Default
|
||||
source "$(brew --prefix bash-git-prompt)/share/gitprompt.sh"
|
||||
fi
|
||||
EOS
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1 @@
|
||||
{"used_options":[],"unused_options":[],"built_as_bottle":false,"poured_from_bottle":false,"time":1476791353,"source_modified_time":1475782274,"HEAD":"0296439c832a915be9b73456c0c26bc6c79c271d","stdlib":null,"compiler":"clang","runtime_dependencies":[],"source":{"path":"/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/bash-git-prompt.rb","tap":"homebrew/core","spec":"stable","versions":{"stable":"2.6.1","devel":null,"head":"HEAD","version_scheme":0}}}
|
||||
@@ -0,0 +1,23 @@
|
||||
Copyright (c) 2016, Martin Gondermann
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
||||
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
@@ -0,0 +1,359 @@
|
||||
# Informative git prompt for bash and fish
|
||||
|
||||
[](https://gitter.im/magicmonty/bash-git-prompt?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
|
||||
|
||||
This prompt is a port of the "Informative git prompt for zsh" which you can
|
||||
find [here](https://github.com/olivierverdier/zsh-git-prompt)
|
||||
|
||||
A ``bash`` prompt that displays information about the current git repository.
|
||||
In particular the branch name, difference with remote branch, number of files
|
||||
staged, changed, etc.
|
||||
|
||||
(an original idea from this [blog post][]).
|
||||
|
||||
`gitstatus.sh` and `git-prompt-help.sh` added by [AKS](http://github.com/aks).
|
||||
|
||||
# ATTENTION! Breaking changes!
|
||||
|
||||
**If you use this prompt already, please update your `.git-prompt-colors.sh`,
|
||||
if you have one. It now contains a function named `define_git_prompt_colors()` or `override_git_prompt_colors()`!**
|
||||
|
||||
**Please see the ``Custom.bgptemplate`` in the ``themes`` subdirectory of the installation directory!**
|
||||
|
||||
**You can now also use the function `override_git_prompt_colors()`. It should define the variable `GIT_PROMPT_THEME_NAME`
|
||||
and call the function `reload_git_prompt_colors <ThemeName>` like follows:**
|
||||
|
||||
```sh
|
||||
override_git_prompt_colors() {
|
||||
GIT_PROMPT_THEME_NAME="Custom" # needed for reload optimization, should be unique
|
||||
|
||||
# Place your overrides here
|
||||
...
|
||||
}
|
||||
|
||||
# load the theme
|
||||
reload_git_prompt_colors "Custom"
|
||||
```
|
||||
|
||||
The advantage of this approach is, that you only need to specify the parts, that are different to the Default theme.
|
||||
|
||||
---
|
||||
|
||||
**The variable `GIT_PROMPT_SHOW_LAST_COMMAND_INDICATOR` was replaced with a more general placeholder
|
||||
named ``_LAST_COMMAND_INDICATOR_``, which is replaced by the state of the last executed command. It is now activated by default.**
|
||||
|
||||
## Examples
|
||||
|
||||
The prompt may look like the following:
|
||||
|
||||

|
||||
|
||||
* ``(master↑3|✚1)``: on branch ``master``, ahead of remote by 3 commits, 1 file changed but not staged
|
||||
* ``(status|●2)``: on branch ``status``, 2 files staged
|
||||
* ``(master|✚7…)``: on branch ``master``, 7 files changed, some files untracked
|
||||
* ``(master|✖2✚3)``: on branch ``master``, 2 conflicts, 3 files changed
|
||||
* ``(master|⚑2)``: on branch ``master``, 2 stash entries
|
||||
* ``(experimental↓2↑3|✔)``: on branch ``experimental``; your branch has diverged by 3 commits, remote by 2 commits; the repository is otherwise clean
|
||||
* ``(:70c2952|✔)``: not on any branch; parent commit has hash ``70c2952``; the repository is otherwise clean
|
||||
|
||||
## Prompt Structure
|
||||
|
||||
By default, the general appearance of the prompt is::
|
||||
|
||||
(<branch> <upstream branch> <branch tracking>|<local status>)
|
||||
|
||||
The symbols are as follows:
|
||||
|
||||
- Local Status Symbols
|
||||
- ``✔``: repository clean
|
||||
- ``●n``: there are ``n`` staged files
|
||||
- ``✖n``: there are ``n`` files with merge conflicts
|
||||
- ``✚n``: there are ``n`` changed but *unstaged* files
|
||||
- ``…n``: there are ``n`` untracked files
|
||||
- ``⚑n``: there are ``n`` stash entries
|
||||
- Upstream branch
|
||||
- Shows the remote tracking branch
|
||||
- Disabled by default
|
||||
- Enable by setting GIT_PROMPT_SHOW_UPSTREAM=1
|
||||
- Branch Tracking Symbols
|
||||
- ``↑n``: ahead of remote by ``n`` commits
|
||||
- ``↓n``: behind remote by ``n`` commits
|
||||
- ``↓m↑n``: branches diverged, other by ``m`` commits, yours by ``n`` commits
|
||||
- ``L``: local branch, not remotely tracked
|
||||
- Branch Symbol:<br />
|
||||
When the branch name starts with a colon ``:``, it means it's actually a hash, not a branch (although it should be pretty clear, unless you name your branches like hashes :-)
|
||||
|
||||
## Installation
|
||||
|
||||
### via [Homebrew][homebrew] on Mac OS X
|
||||
|
||||
- Run `brew update`
|
||||
|
||||
- Run `brew install bash-git-prompt` for the last stable release or `brew install --HEAD bash-git-prompt` for the
|
||||
latest version directly from the repository
|
||||
|
||||
- Now you can source the file in your `~/.bash_profile` as follows:
|
||||
|
||||
```sh
|
||||
if [ -f "$(brew --prefix)/opt/bash-git-prompt/share/gitprompt.sh" ]; then
|
||||
source "$(brew --prefix)/opt/bash-git-prompt/share/gitprompt.sh"
|
||||
fi
|
||||
```
|
||||
|
||||
### via Git clone
|
||||
|
||||
- Clone this repository to your home directory.
|
||||
|
||||
```sh
|
||||
cd ~
|
||||
git clone https://github.com/magicmonty/bash-git-prompt.git .bash-git-prompt --depth=1
|
||||
```
|
||||
|
||||
Add to the `~/.bashrc`:
|
||||
```
|
||||
GIT_PROMPT_ONLY_IN_REPO=1
|
||||
source ~/.bash-git-prompt/gitprompt.sh
|
||||
```
|
||||
|
||||
### All configs for .bashrc
|
||||
|
||||
```sh
|
||||
|
||||
# Set config variables first
|
||||
GIT_PROMPT_ONLY_IN_REPO=1
|
||||
|
||||
# GIT_PROMPT_FETCH_REMOTE_STATUS=0 # uncomment to avoid fetching remote status
|
||||
|
||||
# GIT_PROMPT_SHOW_UPSTREAM=1 # uncomment to show upstream tracking branch
|
||||
# GIT_PROMPT_SHOW_UNTRACKED_FILES=all # can be no, normal or all; determines counting of untracked files
|
||||
|
||||
# GIT_PROMPT_SHOW_CHANGED_FILES_COUNT=0 # uncomment to avoid printing the number of changed files
|
||||
|
||||
# GIT_PROMPT_STATUS_COMMAND=gitstatus_pre-1.7.10.sh # uncomment to support Git older than 1.7.10
|
||||
|
||||
# GIT_PROMPT_START=... # uncomment for custom prompt start sequence
|
||||
# GIT_PROMPT_END=... # uncomment for custom prompt end sequence
|
||||
|
||||
# as last entry source the gitprompt script
|
||||
# GIT_PROMPT_THEME=Custom # use custom theme specified in file GIT_PROMPT_THEME_FILE (default ~/.git-prompt-colors.sh)
|
||||
# GIT_PROMPT_THEME_FILE=~/.git-prompt-colors.sh
|
||||
# GIT_PROMPT_THEME=Solarized # use theme optimized for solarized color scheme
|
||||
source ~/.bash-git-prompt/gitprompt.sh
|
||||
```
|
||||
|
||||
You can set the `GIT_PROMPT_SHOW_UNTRACKED_FILES` variable to `no` or `normal` to speed things up if you have lots of
|
||||
untracked files in your repository. This can be the case for build systems that put their build artifacts in
|
||||
the subdirectory structure of the git repository.
|
||||
|
||||
- `cd` to a git repository and test it!
|
||||
|
||||
#### Themes
|
||||
|
||||
The most settings are now stored in theme files. To select a theme, set the variable `GIT_PROMPT_THEME` to the name
|
||||
of the theme located in `<INSTALLDIR>/themes` without the extension `.bgptheme` like this:
|
||||
|
||||
```sh
|
||||
GIT_PROMPT_THEME=Solarized
|
||||
```
|
||||
|
||||
If you set `GIT_PROMPT_THEME` to `Custom`, then the `.git-prompt-colors.sh` in the home directory will be used.
|
||||
This file can now be generated with the command `git_prompt_make_custom_theme [<Name of base theme>]`. If the name of
|
||||
the base theme is ommitted or the theme file is not found, then the Default theme is used. If you have already a custom
|
||||
`.git-prompt-colors.sh` in your home directory, a error message will be shown.
|
||||
|
||||
You can display a list of available themes with `git_prompt_list_themes` (the current theme is highlighted)
|
||||
|
||||
**If you omit the `GIT_PROMPT_THEME` variable, the Default theme is used or, if you have a custom `.git-prompt-colors.sh`
|
||||
in your home directory, then the Custom theme is used.**
|
||||
|
||||
##### Ubuntu Themes
|
||||
|
||||
Ubuntu requires a bit more spacing for some characters so it has its own themes.
|
||||
|
||||
These can be listed with `git_prompt_list_themes`:
|
||||
```sh
|
||||
git_prompt_list_themes | grep Ubuntu
|
||||
```
|
||||
|
||||
##### Theme structure
|
||||
|
||||
Please see the ``Custom.bgptemplate`` in the ``themes`` subdirectory of the installation directory!
|
||||
|
||||
A theme consists of a function `override_git_prompt_colors()` which defines at least the variable `GIT_PROMPT_THEME_NAME`
|
||||
with a unique theme identifier and a call to the function `reload_git_prompt_colors <ThemeName>` like follows:
|
||||
|
||||
```sh
|
||||
override_git_prompt_colors() {
|
||||
GIT_PROMPT_THEME_NAME="Custom" # needed for reload optimization, should be unique
|
||||
|
||||
# Place your overrides here
|
||||
...
|
||||
}
|
||||
|
||||
# load the theme
|
||||
reload_git_prompt_colors "Custom"
|
||||
```
|
||||
|
||||
The advantage of this approach is, that you only need to specify the parts, that are different to the Default theme.
|
||||
|
||||
If you use a custom theme in `.git-prompt-colors.sh`, please set `GIT_PROMPT_THEME_NAME="Custom"`.
|
||||
|
||||
#### Further customizations
|
||||
|
||||
- You can define `GIT_PROMPT_START` and `GIT_PROMPT_END` to tweak your prompt.
|
||||
|
||||
- The default colors are defined within `prompt-colors.sh`, which is sourced by
|
||||
`gitprompt.sh`. The colors used for various git status are defined in
|
||||
`themes/Default.bgptheme`. Both of these files may be overridden by copying
|
||||
them to $HOME with a `.` prefix. They can also be placed in `$HOME/lib`
|
||||
without the leading `.`. The defaults are the original files in the
|
||||
`~/.bash-git-prompt` directory.
|
||||
|
||||
- You can use `GIT_PROMPT_START_USER`, `GIT_PROMPT_START_ROOT`,
|
||||
`GIT_PROMPT_END_USER` and `GIT_PROMPT_END_ROOT` in your
|
||||
`.git-prompt-colors.sh` to tweak your prompt. You can also override the start
|
||||
and end of the prompt by setting `GIT_PROMPT_START` and `GIT_PROMPT_END`
|
||||
before you source the `gitprompt.sh`.
|
||||
|
||||
- The current git repo information is obtained by the script `gitstatus.sh`.
|
||||
- You can define `prompt_callback` function to tweak your prompt dynamically.
|
||||
|
||||
```sh
|
||||
function prompt_callback {
|
||||
if [ `jobs | wc -l` -ne 0 ]; then
|
||||
echo -n " jobs:\j"
|
||||
fi
|
||||
}
|
||||
```
|
||||
|
||||
- There are two helper functions that can be used within `prompt_callback`:
|
||||
- `gp_set_window_title <String>` - sets the window title to the given string (should work for XTerm type terminals like in OS X or Ubuntu)
|
||||
- `gp_truncate_pwd` - a function that returns the current PWD truncated to fit the current terminal width
|
||||
|
||||
- If you want to show the git prompt only if you are in a git repository you
|
||||
can set ``GIT_PROMPT_ONLY_IN_REPO=1`` before sourcing the gitprompt script
|
||||
|
||||
- There is an indicator at the start of the prompt, which shows
|
||||
the result of the last executed command by if you put the placeholder
|
||||
`_LAST_COMMAND_INDICATOR_` in any of the prompt templates.
|
||||
It is now by default activated in the default theme:
|
||||
|
||||
```sh
|
||||
GIT_PROMPT_START_USER="_LAST_COMMAND_INDICATOR_ ${Yellow}${PathShort}${ResetColor}"
|
||||
GIT_PROMPT_START_ROOT="_LAST_COMMAND_INDICATOR_ ${GIT_PROMPT_START_USER}"
|
||||
```
|
||||
|
||||
If you want to display the exit code too, you can use the placeholder
|
||||
``_LAST_COMMAND_STATE_`` in ``GIT_PROMPT_COMMAND_OK`` or ``GIT_PROMPT_COMMAND_FAIL``
|
||||
in your ``.git-prompt-colors.sh``:
|
||||
|
||||
```sh
|
||||
GIT_PROMPT_COMMAND_OK="${Green}✔ " # displays as ✔
|
||||
GIT_PROMPT_COMMAND_FAIL="${Red}✘-_LAST_COMMAND_STATE_ " # displays as ✘-1 for exit code 1
|
||||
```
|
||||
|
||||
- It is now possible to disable the fetching of the remote repository either
|
||||
globally by setting ``GIT_PROMPT_FETCH_REMOTE_STATUS=0`` in your .bashrc or
|
||||
on a per repository basis by creating a file named ``.bash-git-rc`` with the
|
||||
content ``FETCH_REMOTE_STATUS=0`` in the root of your git repository.
|
||||
|
||||
- You can also ignore a repository completely by creating a file named ``.bash-git-rc`` with the
|
||||
content ``GIT_PROMPT_IGNORE=1`` in the root of your git repository.
|
||||
|
||||
- If you have a repository with many untracked files, the git prompt can become very slow.
|
||||
You can disable the display of untracked files on a per repository basis by setting
|
||||
``GIT_PROMPT_SHOW_UNTRACKED_FILES=no`` in your ``.bash-git-rc`` in the repository or
|
||||
by disabling it globally in your ``.bashrc``
|
||||
|
||||
- You can get help on the git prompt with the function ``git_prompt_help``.
|
||||
Examples are available with ``git_prompt_examples``.
|
||||
A list of all available named colors is available with `git_prompt_color_samples`
|
||||
|
||||
- If you make any changes to any file that is sourced by `gitprompt.sh`, you
|
||||
should run this command, so that the next prompt update will find all the
|
||||
files and source them anew.
|
||||
|
||||
```sh
|
||||
git_prompt_reset
|
||||
```
|
||||
|
||||
- You can disable/enable gitprompt by runnning:
|
||||
|
||||
```sh
|
||||
git_prompt_toggle
|
||||
```
|
||||
|
||||
|
||||
**Enjoy!**
|
||||
|
||||
## Alternative RPM Install
|
||||
|
||||
This project ships an RPM spec to simplify installation on RHEL and
|
||||
clones. If you wish to install from RPM, you may first build the RPM
|
||||
from scratch by following this procedure:
|
||||
* Clone this repository and tag the release with a version number
|
||||
|
||||
````sh
|
||||
git tag -a -m "Tag release 1.1" 1.1
|
||||
````
|
||||
|
||||
* Run the following command to create a tarball:
|
||||
|
||||
````sh
|
||||
VER=$(git describe)
|
||||
# replace dash with underscore to work around
|
||||
# rpmbuild does not allow dash in version string
|
||||
VER=${VER//\-/_}
|
||||
git archive \
|
||||
--format tar \
|
||||
--prefix=bash-git-prompt-${VER}/ \
|
||||
HEAD \
|
||||
-- *.sh \
|
||||
*.fish \
|
||||
README.md \
|
||||
themes \
|
||||
> bash-git-prompt-${VER}.tar
|
||||
mkdir -p /tmp/bash-git-prompt-${VER}
|
||||
sed "s/Version:.*/Version: ${VER}/" \
|
||||
bash-git-prompt.spec \
|
||||
> /tmp/bash-git-prompt-${VER}/bash-git-prompt.spec
|
||||
OLDDIR=$(pwd)
|
||||
cd /tmp
|
||||
tar -uf ${OLDDIR}/bash-git-prompt-${VER}.tar \
|
||||
bash-git-prompt-${VER}/bash-git-prompt.spec
|
||||
cd ${OLDDIR}
|
||||
gzip bash-git-prompt-${VER}.tar
|
||||
mv bash-git-prompt-${VER}.tar.gz bash-git-prompt-${VER}.tgz
|
||||
````
|
||||
|
||||
* Log into an RHEL or clones host and run:
|
||||
|
||||
````sh
|
||||
rpmbuild -ta bash-git-prompt-xxx.tar.gz
|
||||
````
|
||||
Then you may publish or install the rpm from "~/rpmbuild/RPMS/noarch".
|
||||
|
||||
## License
|
||||
This code is under the [BSD 2 Clause (NetBSD) license][license].
|
||||
|
||||
## Who Are You?
|
||||
The current maintainer of the original bash-git-prompt is [Martin Gondermann][magicmonty].
|
||||
|
||||
## Contributing
|
||||
If you want to contribute you can look for issues with the label [up-for-grabs][upforgrabs].
|
||||
Please leave a comment on the issue, that you want to fix it, so others know, the labels are "taken".
|
||||
|
||||
Pull requests are welcome. I will check them and merge them, if I think they help the project.
|
||||
|
||||
## Donations
|
||||
I accept tips through [Flattr][flattr].
|
||||
|
||||
[](https://flattr.com/submit/auto?user_id=magicmonty&url=https%3A%2F%2Fgithub.com%2Fmagicmonty%2Fbash-git-prompt)
|
||||
|
||||
[blog post]: http://sebastiancelis.com/2009/nov/16/zsh-prompt-git-users/
|
||||
[tip]:https://www.gittip.com/magicmonty/
|
||||
[magicmonty]: http://blog.pagansoft.de/pages/about.html
|
||||
[license]:https://github.com/magicmonty/bash-git-prompt/tree/master/LICENSE.txt
|
||||
[flattr]: https://flattr.com/submit/auto?user_id=magicmonty&url=https%3A%2F%2Fgithub.com%2Fmagicmonty%2Fbash-git-prompt
|
||||
[homebrew]: http://brew.sh/
|
||||
[upforgrabs]: https://github.com/magicmonty/bash-git-prompt/labels/up-for-grabs
|
||||
Executable
+76
@@ -0,0 +1,76 @@
|
||||
#!/usr/bin/env bash
|
||||
# git-prompt-help -- show useful info to help new users with the information
|
||||
# being displayed.
|
||||
|
||||
git_prompt_help() {
|
||||
source ${__GIT_PROMPT_DIR}/prompt-colors.sh
|
||||
source ${__GIT_PROMPT_DIR}/themes/Default.bgptheme
|
||||
cat <<EOF | sed 's/\\\[\\033//g' | sed 's/\\\]//g'
|
||||
The git prompt format is ${GIT_PROMPT_PREFIX}<BRANCH><TRACKING>${GIT_PROMPT_SEPARATOR}<LOCALSTATUS>${GIT_PROMPT_SUFFIX}
|
||||
|
||||
BRANCH is a branch name, such as "master" or "stage", a tag name, or commit
|
||||
hash prefixed with ':'.
|
||||
|
||||
TRACKING indicates how the local branch differs from the
|
||||
remote branch. It can be empty, or one of:
|
||||
|
||||
${GIT_PROMPT_BRANCH}${ResetColor}${GIT_PROMPT_REMOTE}${GIT_PROMPT_SYMBOLS_AHEAD}N${ResetColor} - ahead of remote by N commits
|
||||
${GIT_PROMPT_BRANCH}${ResetColor}${GIT_PROMPT_REMOTE}${GIT_PROMPT_SYMBOLS_BEHIND}M${ResetColor} - behind remote by M commits
|
||||
${GIT_PROMPT_BRANCH}${ResetColor}${GIT_PROMPT_REMOTE}${GIT_PROMPT_SYMBOLS_AHEAD}N${GIT_PROMPT_SYMBOLS_BEHIND}M${ResetColor} - branches diverged, other by M commits, yours by N commits
|
||||
|
||||
LOCALSTATUS is one of the following:
|
||||
|
||||
${GIT_PROMPT_CLEAN}${ResetColor} - repository clean
|
||||
${GIT_PROMPT_STAGED}N${ResetColor} - N staged files
|
||||
${GIT_PROMPT_CONFLICTS}N${ResetColor} - N files with merge conflicts
|
||||
${GIT_PROMPT_CHANGED}N${ResetColor} - N changed but *unstaged* files
|
||||
${GIT_PROMPT_UNTRACKED}N${ResetColor} - N untracked files
|
||||
${GIT_PROMPT_STASHED}N${ResetColor} - N stash entries
|
||||
|
||||
See "git_prompt_examples" for examples.
|
||||
EOF
|
||||
}
|
||||
|
||||
help_git_prompt() { git_prompt_help ; }
|
||||
|
||||
git_prompt_examples() {
|
||||
cat <<EOF | sed 's/\\\[\\033//g' | sed 's/\\\]//g'
|
||||
These are examples of the git prompt:
|
||||
|
||||
[${GIT_PROMPT_BRANCH}master${ResetColor}${GIT_PROMPT_REMOTE}↑·3${ResetColor}|${GIT_PROMPT_CHANGED}1${ResetColor}] - on branch "master", ahead of remote by 3 commits, 1
|
||||
file changed but not staged
|
||||
|
||||
[${GIT_PROMPT_BRANCH}status${ResetColor}|${GIT_PROMPT_STAGED}2${ResetColor}] - on branch "status", 2 files staged
|
||||
|
||||
[${GIT_PROMPT_BRANCH}master${ResetColor}|${GIT_PROMPT_CHANGED}7${GIT_PROMPT_UNTRACKED}${ResetColor}] - on branch "master", 7 files changed, some files untracked
|
||||
|
||||
[${GIT_PROMPT_BRANCH}master${ResetColor}|${GIT_PROMPT_CONFLICTS}2${GIT_PROMPT_CHANGED}3${ResetColor}] - on branch "master", 2 conflicts, 3 files changed
|
||||
|
||||
[${GIT_PROMPT_BRANCH}master${ResetColor}|${GIT_PROMPT_STASHED}2${ResetColor}] - on branch "master", 2 stash entries
|
||||
|
||||
[${GIT_PROMPT_BRANCH}experimental${ResetColor}${GIT_PROMPT_REMOTE}↓·2↑·3${ResetColor}|${GIT_PROMPT_CLEAN}${ResetColor}]
|
||||
- on branch "experimental"; your branch has diverged
|
||||
by 3 commits, remote by 2 commits; the repository is
|
||||
otherwise clean
|
||||
|
||||
[${GIT_PROMPT_BRANCH}:70c2952${ResetColor}|${GIT_PROMPT_CLEAN}${ResetColor}] - not on any branch; parent commit has hash "70c2952"; the
|
||||
repository is otherwise clean
|
||||
EOF
|
||||
}
|
||||
|
||||
git_prompt_color_samples() {
|
||||
|
||||
showColor() {
|
||||
local color=$(eval echo "\${$1}")
|
||||
echo -e "${color}$1${ResetColor}" | sed 's/\\\]//g' | sed 's/\\\[//g'
|
||||
}
|
||||
|
||||
local x=0
|
||||
while (( x < 8 )) ; do
|
||||
showColor ${ColorNames[x]}
|
||||
showColor "Dim${ColorNames[x]}"
|
||||
showColor "Bold${ColorNames[x]}"
|
||||
showColor "Bright${ColorNames[x]}"
|
||||
(( x++ ))
|
||||
done
|
||||
}
|
||||
@@ -0,0 +1,112 @@
|
||||
if not set -q __GIT_PROMPT_DIR
|
||||
set __GIT_PROMPT_DIR ~/.gitprompt
|
||||
end
|
||||
|
||||
# Colors
|
||||
# Reset
|
||||
set ResetColor (set_color normal) # Text Reset
|
||||
|
||||
# Regular Colors
|
||||
set Red (set_color red) # Red
|
||||
set Yellow (set_color yellow); # Yellow
|
||||
set Blue (set_color blue) # Blue
|
||||
set WHITE (set_color white)
|
||||
|
||||
# Bold
|
||||
set BGreen (set_color -o green) # Green
|
||||
|
||||
# High Intensty
|
||||
set IBlack (set_color -o black) # Black
|
||||
|
||||
# Bold High Intensty
|
||||
set Magenta (set_color -o purple) # Purple
|
||||
|
||||
# Default values for the appearance of the prompt. Configure at will.
|
||||
set GIT_PROMPT_PREFIX "["
|
||||
set GIT_PROMPT_SUFFIX "]"
|
||||
set GIT_PROMPT_SEPARATOR "|"
|
||||
set GIT_PROMPT_BRANCH "$Magenta"
|
||||
set GIT_PROMPT_STAGED "$Red● "
|
||||
set GIT_PROMPT_CONFLICTS "$Red✖ "
|
||||
set GIT_PROMPT_CHANGED "$Blue✚ "
|
||||
set GIT_PROMPT_REMOTE " "
|
||||
set GIT_PROMPT_UNTRACKED "…"
|
||||
set GIT_PROMPT_STASHED "⚑ "
|
||||
set GIT_PROMPT_CLEAN "$BGreen✔"
|
||||
|
||||
function fish_prompt
|
||||
|
||||
# Various variables you might want for your PS1 prompt instead
|
||||
set Time (date +%R)
|
||||
set PathShort (pwd|sed "s=$HOME=~=")
|
||||
|
||||
set PROMPT_START "$Yellow$PathShort$ResetColor"
|
||||
set PROMPT_END " \n$WHITE$Time$ResetColor \$ "
|
||||
|
||||
set -e __CURRENT_GIT_STATUS
|
||||
set gitstatus "$__GIT_PROMPT_DIR/gitstatus.py"
|
||||
|
||||
set _GIT_STATUS (python $gitstatus)
|
||||
set __CURRENT_GIT_STATUS $_GIT_STATUS
|
||||
|
||||
set __CURRENT_GIT_STATUS_PARAM_COUNT (count $__CURRENT_GIT_STATUS)
|
||||
|
||||
if not test "0" -eq $__CURRENT_GIT_STATUS_PARAM_COUNT
|
||||
set GIT_BRANCH $__CURRENT_GIT_STATUS[1]
|
||||
set GIT_REMOTE "$__CURRENT_GIT_STATUS[2]"
|
||||
if contains "." "$GIT_REMOTE"
|
||||
set -e GIT_REMOTE
|
||||
end
|
||||
set GIT_STAGED $__CURRENT_GIT_STATUS[3]
|
||||
set GIT_CONFLICTS $__CURRENT_GIT_STATUS[4]
|
||||
set GIT_CHANGED $__CURRENT_GIT_STATUS[5]
|
||||
set GIT_UNTRACKED $__CURRENT_GIT_STATUS[6]
|
||||
set GIT_STASHED $__CURRENT_GIT_STATUS[7]
|
||||
set GIT_CLEAN $__CURRENT_GIT_STATUS[8]
|
||||
end
|
||||
|
||||
if test -n "$__CURRENT_GIT_STATUS"
|
||||
set STATUS " $GIT_PROMPT_PREFIX$GIT_PROMPT_BRANCH$GIT_BRANCH$ResetColor"
|
||||
|
||||
if set -q GIT_REMOTE
|
||||
set STATUS "$STATUS$GIT_PROMPT_REMOTE$GIT_REMOTE$ResetColor"
|
||||
end
|
||||
|
||||
set STATUS "$STATUS$GIT_PROMPT_SEPARATOR"
|
||||
|
||||
if [ $GIT_STAGED != "0" ]
|
||||
set STATUS "$STATUS$GIT_PROMPT_STAGED$GIT_STAGED$ResetColor"
|
||||
end
|
||||
|
||||
if [ $GIT_CONFLICTS != "0" ]
|
||||
set STATUS "$STATUS$GIT_PROMPT_CONFLICTS$GIT_CONFLICTS$ResetColor"
|
||||
end
|
||||
|
||||
if [ $GIT_CHANGED != "0" ]
|
||||
set STATUS "$STATUS$GIT_PROMPT_CHANGED$GIT_CHANGED$ResetColor"
|
||||
end
|
||||
|
||||
if [ "$GIT_UNTRACKED" != "0" ]
|
||||
set STATUS "$STATUS$GIT_PROMPT_UNTRACKED$GIT_UNTRACKED$ResetColor"
|
||||
end
|
||||
|
||||
if [ "$GIT_STASHED" != "0" ]
|
||||
set STATUS "$STATUS$GIT_PROMPT_STASHED$GIT_STASHED$ResetColor"
|
||||
end
|
||||
|
||||
if [ "$GIT_CLEAN" = "1" ]
|
||||
set STATUS "$STATUS$GIT_PROMPT_CLEAN"
|
||||
end
|
||||
|
||||
set STATUS "$STATUS$ResetColor$GIT_PROMPT_SUFFIX"
|
||||
|
||||
set PS1 "$PROMPT_START$STATUS$PROMPT_END"
|
||||
else
|
||||
set PS1 "$PROMPT_START$PROMPT_END"
|
||||
end
|
||||
|
||||
echo -e $PS1
|
||||
|
||||
end
|
||||
|
||||
|
||||
Executable
+651
@@ -0,0 +1,651 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
function async_run() {
|
||||
{
|
||||
eval "$@" &> /dev/null
|
||||
}&
|
||||
}
|
||||
|
||||
function git_prompt_dir() {
|
||||
# assume the gitstatus.sh is in the same directory as this script
|
||||
# code thanks to http://stackoverflow.com/questions/59895
|
||||
if [ -z "$__GIT_PROMPT_DIR" ]; then
|
||||
local SOURCE="${BASH_SOURCE[0]}"
|
||||
while [ -h "$SOURCE" ]; do
|
||||
local DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
|
||||
SOURCE="$(readlink "$SOURCE")"
|
||||
[[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE"
|
||||
done
|
||||
__GIT_PROMPT_DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
|
||||
fi
|
||||
}
|
||||
|
||||
function echoc() {
|
||||
echo -e "${1}$2${ResetColor}" | sed 's/\\\]//g' | sed 's/\\\[//g'
|
||||
}
|
||||
|
||||
function get_theme() {
|
||||
local CUSTOM_THEME_FILE="${HOME}/.git-prompt-colors.sh"
|
||||
if [[ ! (-z ${GIT_PROMPT_THEME_FILE} ) ]]; then
|
||||
CUSTOM_THEME_FILE=$GIT_PROMPT_THEME_FILE
|
||||
fi
|
||||
local DEFAULT_THEME_FILE="${__GIT_PROMPT_DIR}/themes/Default.bgptheme"
|
||||
|
||||
if [[ -z ${GIT_PROMPT_THEME} ]]; then
|
||||
if [[ -r $CUSTOM_THEME_FILE ]]; then
|
||||
GIT_PROMPT_THEME="Custom"
|
||||
__GIT_PROMPT_THEME_FILE=$CUSTOM_THEME_FILE
|
||||
else
|
||||
GIT_PROMPT_THEME="Default"
|
||||
__GIT_PROMPT_THEME_FILE=$DEFAULT_THEME_FILE
|
||||
fi
|
||||
else
|
||||
if [[ "${GIT_PROMPT_THEME}" = "Custom" ]]; then
|
||||
GIT_PROMPT_THEME="Custom"
|
||||
__GIT_PROMPT_THEME_FILE=$CUSTOM_THEME_FILE
|
||||
|
||||
if [[ ! (-r $__GIT_PROMPT_THEME_FILE) ]]; then
|
||||
GIT_PROMPT_THEME="Default"
|
||||
__GIT_PROMPT_THEME_FILE=$DEFAULT_THEME_FILE
|
||||
fi
|
||||
else
|
||||
local theme=""
|
||||
|
||||
# use default theme, if theme was not found
|
||||
for themefile in "${__GIT_PROMPT_DIR}/themes/"*.bgptheme; do
|
||||
local basename=${themefile##*/}
|
||||
if [[ "${basename%.bgptheme}" = "${GIT_PROMPT_THEME}" ]]; then
|
||||
theme=$GIT_PROMPT_THEME
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
if [[ "${theme}" = "" ]]; then
|
||||
GIT_PROMPT_THEME="Default"
|
||||
fi
|
||||
|
||||
__GIT_PROMPT_THEME_FILE="${__GIT_PROMPT_DIR}/themes/${GIT_PROMPT_THEME}.bgptheme"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
function git_prompt_load_colors() {
|
||||
if gp_set_file_var __PROMPT_COLORS_FILE prompt-colors.sh ; then
|
||||
# outsource the color defs
|
||||
source "$__PROMPT_COLORS_FILE"
|
||||
else
|
||||
echo 1>&2 "Cannot find prompt-colors.sh!"
|
||||
fi
|
||||
}
|
||||
|
||||
function git_prompt_load_theme() {
|
||||
get_theme
|
||||
local DEFAULT_THEME_FILE="${__GIT_PROMPT_DIR}/themes/Default.bgptheme"
|
||||
source "${DEFAULT_THEME_FILE}"
|
||||
source "${__GIT_PROMPT_THEME_FILE}"
|
||||
}
|
||||
|
||||
function git_prompt_list_themes() {
|
||||
git_prompt_load_colors
|
||||
git_prompt_dir
|
||||
get_theme
|
||||
|
||||
for themefile in "${__GIT_PROMPT_DIR}/themes/"*.bgptheme; do
|
||||
local basename=${themefile##*/}
|
||||
local theme="${basename%.bgptheme}"
|
||||
if [[ "${GIT_PROMPT_THEME}" = "${theme}" ]]; then
|
||||
echoc ${Red} "*${theme}"
|
||||
else
|
||||
echo $theme
|
||||
fi
|
||||
done
|
||||
|
||||
if [[ "${GIT_PROMPT_THEME}" = "Custom" ]]; then
|
||||
echoc ${Magenta} "*Custom"
|
||||
else
|
||||
echoc ${Blue} "Custom"
|
||||
fi
|
||||
}
|
||||
|
||||
function git_prompt_make_custom_theme() {
|
||||
if [[ -r "${HOME}/.git-prompt-colors.sh" ]]; then
|
||||
echoc ${Red} "You alread have created a custom theme!"
|
||||
else
|
||||
git_prompt_dir
|
||||
|
||||
local base="Default"
|
||||
if [[ -n $1 && -r "${__GIT_PROMPT_DIR}/themes/${1}.bgptheme" ]]; then
|
||||
base=$1
|
||||
echoc ${Green} "Using theme ${Magenta}\"${base}\"${Green} as base theme!"
|
||||
else
|
||||
echoc ${Green} "Using theme ${Magenta}\"Default\"${Green} as base theme!"
|
||||
fi
|
||||
|
||||
if [[ "${base}" = "Custom" ]]; then
|
||||
echoc ${Red} "You cannot use the custom theme as base"
|
||||
else
|
||||
echoc ${Green} "Creating new custom theme in \"${HOME}/.git-prompt-colors.sh\""
|
||||
echoc ${DimYellow} "Please add ${Magenta}\"GIT_PROMPT_THEME=Custom\"${DimYellow} to your .bashrc to use this theme"
|
||||
if [[ "${base}" == "Default" ]]; then
|
||||
cp "${__GIT_PROMPT_DIR}/themes/Custom.bgptemplate" "${HOME}/.git-prompt-colors.sh"
|
||||
else
|
||||
cp "${__GIT_PROMPT_DIR}/themes/${base}.bgptheme" "${HOME}/.git-prompt-colors.sh"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# gp_set_file_var ENVAR SOMEFILE
|
||||
#
|
||||
# If ENVAR is set, check that it's value exists as a readable file. Otherwise,
|
||||
# Set ENVAR to the path to SOMEFILE, based on $HOME, $__GIT_PROMPT_DIR, and the
|
||||
# directory of the current script. The SOMEFILE can be prefixed with '.', or
|
||||
# not.
|
||||
#
|
||||
# Return 0 (success) if ENVAR not already defined, 1 (failure) otherwise.
|
||||
|
||||
function gp_set_file_var() {
|
||||
local envar="$1"
|
||||
local file="$2"
|
||||
if eval "[[ -n \"\$$envar\" && -r \"\$$envar\" ]]" ; then # is envar set to a readable file?
|
||||
local basefile
|
||||
eval "basefile=\"\`basename \\\"\$$envar\\\"\`\"" # assign basefile
|
||||
if [[ "$basefile" = "$file" || "$basefile" = ".$file" ]]; then
|
||||
return 0
|
||||
fi
|
||||
else # envar is not set, or it's set to a different file than requested
|
||||
eval "$envar=" # set empty envar
|
||||
gp_maybe_set_envar_to_path "$envar" "$HOME/.$file" "$HOME/$file" "$HOME/lib/$file" && return 0
|
||||
git_prompt_dir
|
||||
gp_maybe_set_envar_to_path "$envar" "$__GIT_PROMPT_DIR/$file" "${0##*/}/$file" && return 0
|
||||
fi
|
||||
return 1
|
||||
}
|
||||
|
||||
# gp_maybe_set_envar_to_path ENVAR FILEPATH ...
|
||||
#
|
||||
# return 0 (true) if any FILEPATH is readable, set ENVAR to it
|
||||
# return 1 (false) if not
|
||||
|
||||
function gp_maybe_set_envar_to_path() {
|
||||
local envar="$1"
|
||||
shift
|
||||
local file
|
||||
for file in "$@" ; do
|
||||
if [[ -r "$file" ]]; then
|
||||
eval "$envar=\"$file\""
|
||||
return 0
|
||||
fi
|
||||
done
|
||||
return 1
|
||||
}
|
||||
|
||||
# git_prompt_reset
|
||||
#
|
||||
# unsets selected GIT_PROMPT variables, causing the next prompt callback to
|
||||
# recalculate them from scratch.
|
||||
|
||||
git_prompt_reset() {
|
||||
local var
|
||||
for var in GIT_PROMPT_DIR __GIT_PROMPT_COLORS_FILE __PROMPT_COLORS_FILE __GIT_STATUS_CMD GIT_PROMPT_THEME_NAME; do
|
||||
unset $var
|
||||
done
|
||||
}
|
||||
|
||||
# gp_format_exit_status RETVAL
|
||||
#
|
||||
# echos the symbolic signal name represented by RETVAL if the process was
|
||||
# signalled, otherwise echos the original value of RETVAL
|
||||
|
||||
gp_format_exit_status() {
|
||||
local RETVAL="$1"
|
||||
local SIGNAL
|
||||
# Suppress STDERR in case RETVAL is not an integer (in such cases, RETVAL
|
||||
# is echoed verbatim)
|
||||
if [ "${RETVAL}" -gt 128 ] 2>/dev/null; then
|
||||
SIGNAL=$(( ${RETVAL} - 128 ))
|
||||
kill -l "${SIGNAL}" 2>/dev/null || echo "${RETVAL}"
|
||||
else
|
||||
echo "${RETVAL}"
|
||||
fi
|
||||
}
|
||||
|
||||
function git_prompt_config() {
|
||||
#Checking if root to change output
|
||||
_isroot=false
|
||||
[[ $UID -eq 0 ]] && _isroot=true
|
||||
|
||||
# There are two files related to colors:
|
||||
#
|
||||
# prompt-colors.sh -- sets generic color names suitable for bash 'PS1' prompt
|
||||
# git-prompt-colors.sh -- sets the GIT_PROMPT color scheme, using names from prompt-colors.sh
|
||||
|
||||
git_prompt_load_colors
|
||||
|
||||
# source the user's ~/.git-prompt-colors.sh file, or the one that should be
|
||||
# sitting in the same directory as this script
|
||||
|
||||
git_prompt_load_theme
|
||||
|
||||
if is_function prompt_callback; then
|
||||
prompt_callback="prompt_callback"
|
||||
else
|
||||
prompt_callback="prompt_callback_default"
|
||||
fi
|
||||
|
||||
if [ $GIT_PROMPT_LAST_COMMAND_STATE = 0 ]; then
|
||||
LAST_COMMAND_INDICATOR="$GIT_PROMPT_COMMAND_OK";
|
||||
else
|
||||
LAST_COMMAND_INDICATOR="$GIT_PROMPT_COMMAND_FAIL";
|
||||
fi
|
||||
|
||||
# replace _LAST_COMMAND_STATE_ token with the actual state
|
||||
GIT_PROMPT_LAST_COMMAND_STATE=$(gp_format_exit_status ${GIT_PROMPT_LAST_COMMAND_STATE})
|
||||
LAST_COMMAND_INDICATOR="${LAST_COMMAND_INDICATOR//_LAST_COMMAND_STATE_/${GIT_PROMPT_LAST_COMMAND_STATE}}"
|
||||
|
||||
# Do this only once to define PROMPT_START and PROMPT_END
|
||||
|
||||
if [[ -z "$PROMPT_START" || -z "$PROMPT_END" ]]; then
|
||||
|
||||
if [[ -z "$GIT_PROMPT_START" ]] ; then
|
||||
if $_isroot; then
|
||||
PROMPT_START="$GIT_PROMPT_START_ROOT"
|
||||
else
|
||||
PROMPT_START="$GIT_PROMPT_START_USER"
|
||||
fi
|
||||
else
|
||||
PROMPT_START="$GIT_PROMPT_START"
|
||||
fi
|
||||
|
||||
if [[ -z "$GIT_PROMPT_END" ]] ; then
|
||||
if $_isroot; then
|
||||
PROMPT_END="$GIT_PROMPT_END_ROOT"
|
||||
else
|
||||
PROMPT_END="$GIT_PROMPT_END_USER"
|
||||
fi
|
||||
else
|
||||
PROMPT_END="$GIT_PROMPT_END"
|
||||
fi
|
||||
fi
|
||||
|
||||
# set GIT_PROMPT_LEADING_SPACE to 0 if you want to have no leading space in front of the GIT prompt
|
||||
if [[ "$GIT_PROMPT_LEADING_SPACE" = 0 ]]; then
|
||||
PROMPT_LEADING_SPACE=""
|
||||
else
|
||||
PROMPT_LEADING_SPACE=" "
|
||||
fi
|
||||
|
||||
if [[ "$GIT_PROMPT_ONLY_IN_REPO" = 1 ]]; then
|
||||
EMPTY_PROMPT="$OLD_GITPROMPT"
|
||||
else
|
||||
local ps="$(gp_add_virtualenv_to_prompt)$PROMPT_START$($prompt_callback)$PROMPT_END"
|
||||
EMPTY_PROMPT="${ps//_LAST_COMMAND_INDICATOR_/${LAST_COMMAND_INDICATOR}}"
|
||||
fi
|
||||
|
||||
# fetch remote revisions every other $GIT_PROMPT_FETCH_TIMEOUT (default 5) minutes
|
||||
if [[ -z "$GIT_PROMPT_FETCH_TIMEOUT" ]]; then
|
||||
GIT_PROMPT_FETCH_TIMEOUT="5"
|
||||
fi
|
||||
if [[ -z "$__GIT_STATUS_CMD" ]] ; then # if GIT_STATUS_CMD not defined..
|
||||
git_prompt_dir
|
||||
if ! gp_maybe_set_envar_to_path __GIT_STATUS_CMD "$__GIT_PROMPT_DIR/$GIT_PROMPT_STATUS_COMMAND" ; then
|
||||
echo 1>&2 "Cannot find $GIT_PROMPT_STATUS_COMMAND!"
|
||||
fi
|
||||
# __GIT_STATUS_CMD defined
|
||||
fi
|
||||
unset GIT_BRANCH
|
||||
}
|
||||
|
||||
function setLastCommandState() {
|
||||
GIT_PROMPT_LAST_COMMAND_STATE=$?
|
||||
}
|
||||
|
||||
function we_are_on_repo() {
|
||||
if [[ -e "$(git rev-parse --git-dir 2> /dev/null)" ]]; then
|
||||
echo 1
|
||||
fi
|
||||
echo 0
|
||||
}
|
||||
|
||||
function update_old_git_prompt() {
|
||||
local in_repo=$(we_are_on_repo)
|
||||
if [[ $GIT_PROMPT_OLD_DIR_WAS_GIT = 0 ]]; then
|
||||
OLD_GITPROMPT=$PS1
|
||||
fi
|
||||
|
||||
GIT_PROMPT_OLD_DIR_WAS_GIT=$in_repo
|
||||
}
|
||||
|
||||
function setGitPrompt() {
|
||||
update_old_git_prompt
|
||||
|
||||
local repo=$(git rev-parse --show-toplevel 2> /dev/null)
|
||||
if [[ ! -e "$repo" ]] && [[ "$GIT_PROMPT_ONLY_IN_REPO" = 1 ]]; then
|
||||
# we do not permit bash-git-prompt outside git repos, so nothing to do
|
||||
PS1="$OLD_GITPROMPT"
|
||||
return
|
||||
fi
|
||||
|
||||
local EMPTY_PROMPT
|
||||
local __GIT_STATUS_CMD
|
||||
|
||||
git_prompt_config
|
||||
|
||||
if [[ ! -e "$repo" ]] || [[ "$GIT_PROMPT_DISABLE" = 1 ]]; then
|
||||
PS1="$EMPTY_PROMPT"
|
||||
return
|
||||
fi
|
||||
|
||||
local FETCH_REMOTE_STATUS=1
|
||||
if [[ "$GIT_PROMPT_FETCH_REMOTE_STATUS" = 0 ]]; then
|
||||
FETCH_REMOTE_STATUS=0
|
||||
fi
|
||||
|
||||
unset GIT_PROMPT_IGNORE
|
||||
OLD_GIT_PROMPT_SHOW_UNTRACKED_FILES=${GIT_PROMPT_SHOW_UNTRACKED_FILES}
|
||||
unset GIT_PROMPT_SHOW_UNTRACKED_FILES
|
||||
|
||||
if [[ -e "$repo/.bash-git-rc" ]]; then
|
||||
source "$repo/.bash-git-rc"
|
||||
fi
|
||||
|
||||
if [ -z "${GIT_PROMPT_SHOW_UNTRACKED_FILES}" ]; then
|
||||
GIT_PROMPT_SHOW_UNTRACKED_FILES=${OLD_GIT_PROMPT_SHOW_UNTRACKED_FILES}
|
||||
fi
|
||||
unset OLD_GIT_PROMPT_SHOW_UNTRACKED_FILES
|
||||
|
||||
if [[ "$GIT_PROMPT_IGNORE" = 1 ]]; then
|
||||
PS1="$EMPTY_PROMPT"
|
||||
return
|
||||
fi
|
||||
|
||||
if [[ "$FETCH_REMOTE_STATUS" = 1 ]]; then
|
||||
checkUpstream
|
||||
fi
|
||||
|
||||
updatePrompt
|
||||
}
|
||||
|
||||
# some versions of find do not have -mmin
|
||||
_have_find_mmin=1
|
||||
|
||||
function olderThanMinutes() {
|
||||
local matches
|
||||
local find_exit_code
|
||||
|
||||
if [[ -z "$_find_command" ]]; then
|
||||
if command -v gfind > /dev/null; then
|
||||
_find_command=gfind
|
||||
else
|
||||
_find_command=find
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ "$_have_find_mmin" = 1 ]]; then
|
||||
matches=$("$_find_command" "$1" -mmin +"$2" 2> /dev/null)
|
||||
find_exit_code="$?"
|
||||
if [[ -n "$matches" ]]; then
|
||||
return 0
|
||||
else
|
||||
if [[ "$find_exit_code" != 0 ]]; then
|
||||
_have_find_mmin=0
|
||||
else
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# try perl, solaris ships with perl
|
||||
if command -v perl > /dev/null; then
|
||||
perl -e '((time - (stat("'"$1"'"))[9]) / 60) > '"$2"' && exit(0) || exit(1)'
|
||||
return "$?"
|
||||
else
|
||||
echo >&2
|
||||
echo "[1;31mWARNING[0m: neither a find that supports -mmin (such as GNU find) or perl is available, disabling remote status checking. Install GNU find as gfind or perl to enable this feature, or set GIT_PROMPT_FETCH_REMOTE_STATUS=0 to disable this warning." >&2
|
||||
echo >&2
|
||||
GIT_PROMPT_FETCH_REMOTE_STATUS=0
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
function checkUpstream() {
|
||||
local GIT_PROMPT_FETCH_TIMEOUT
|
||||
git_prompt_config
|
||||
|
||||
local FETCH_HEAD="$repo/.git/FETCH_HEAD"
|
||||
# Fech repo if local is stale for more than $GIT_FETCH_TIMEOUT minutes
|
||||
if [[ ! -e "$FETCH_HEAD" ]] || olderThanMinutes "$FETCH_HEAD" "$GIT_PROMPT_FETCH_TIMEOUT"
|
||||
then
|
||||
if [[ -n $(git remote show) ]]; then
|
||||
(
|
||||
async_run "git fetch --quiet"
|
||||
disown -h
|
||||
)
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
function replaceSymbols() {
|
||||
if [[ -z ${GIT_PROMPT_SYMBOLS_NO_REMOTE_TRACKING} ]]; then
|
||||
GIT_PROMPT_SYMBOLS_NO_REMOTE_TRACKING=L
|
||||
fi
|
||||
|
||||
local VALUE=${1//_AHEAD_/${GIT_PROMPT_SYMBOLS_AHEAD}}
|
||||
local VALUE1=${VALUE//_BEHIND_/${GIT_PROMPT_SYMBOLS_BEHIND}}
|
||||
local VALUE2=${VALUE1//_NO_REMOTE_TRACKING_/${GIT_PROMPT_SYMBOLS_NO_REMOTE_TRACKING}}
|
||||
|
||||
echo ${VALUE2//_PREHASH_/${GIT_PROMPT_SYMBOLS_PREHASH}}
|
||||
}
|
||||
|
||||
function createPrivateIndex {
|
||||
# Create a copy of the index to avoid conflicts with parallel git commands, e.g. git rebase.
|
||||
local __GIT_INDEX_FILE
|
||||
local __GIT_INDEX_PRIVATE
|
||||
if [[ -z "$GIT_INDEX_FILE" ]]; then
|
||||
__GIT_INDEX_FILE="$(git rev-parse --git-dir)/index"
|
||||
else
|
||||
__GIT_INDEX_FILE="$GIT_INDEX_FILE"
|
||||
fi
|
||||
__GIT_INDEX_PRIVATE="/tmp/git-index-private$$"
|
||||
command cp "$__GIT_INDEX_FILE" "$__GIT_INDEX_PRIVATE" 2>/dev/null
|
||||
echo "$__GIT_INDEX_PRIVATE"
|
||||
}
|
||||
|
||||
function updatePrompt() {
|
||||
local LAST_COMMAND_INDICATOR
|
||||
local PROMPT_LEADING_SPACE
|
||||
local PROMPT_START
|
||||
local PROMPT_END
|
||||
local EMPTY_PROMPT
|
||||
local Blue="\[\033[0;34m\]"
|
||||
|
||||
git_prompt_config
|
||||
|
||||
export __GIT_PROMPT_IGNORE_STASH=${GIT_PROMPT_IGNORE_STASH}
|
||||
export __GIT_PROMPT_SHOW_UPSTREAM=${GIT_PROMPT_SHOW_UPSTREAM}
|
||||
|
||||
if [ -z "${GIT_PROMPT_SHOW_UNTRACKED_FILES}" ]; then
|
||||
export __GIT_PROMPT_SHOW_UNTRACKED_FILES=all
|
||||
else
|
||||
export __GIT_PROMPT_SHOW_UNTRACKED_FILES=${GIT_PROMPT_SHOW_UNTRACKED_FILES}
|
||||
fi
|
||||
|
||||
if [ -z "${GIT_PROMPT_SHOW_CHANGED_FILES_COUNT}" ]; then
|
||||
export __GIT_PROMPT_SHOW_CHANGED_FILES_COUNT=1
|
||||
else
|
||||
export __GIT_PROMPT_SHOW_CHANGED_FILES_COUNT=${GIT_PROMPT_SHOW_CHANGED_FILES_COUNT}
|
||||
fi
|
||||
|
||||
local GIT_INDEX_PRIVATE="$(createPrivateIndex)"
|
||||
#important to define GIT_INDEX_FILE as local: This way it only affects this function (and below) - even with the export afterwards
|
||||
local GIT_INDEX_FILE
|
||||
export GIT_INDEX_FILE="$GIT_INDEX_PRIVATE"
|
||||
|
||||
local -a git_status_fields
|
||||
git_status_fields=($("$__GIT_STATUS_CMD" 2>/dev/null))
|
||||
|
||||
export GIT_BRANCH=$(replaceSymbols ${git_status_fields[0]})
|
||||
local GIT_REMOTE="$(replaceSymbols ${git_status_fields[1]})"
|
||||
if [[ "." == "$GIT_REMOTE" ]]; then
|
||||
unset GIT_REMOTE
|
||||
fi
|
||||
|
||||
local GIT_UPSTREAM="${git_status_fields[2]}"
|
||||
if [[ -z "${__GIT_PROMPT_SHOW_UPSTREAM}" || "^" == "$GIT_UPSTREAM" ]]; then
|
||||
unset GIT_UPSTREAM
|
||||
else
|
||||
GIT_UPSTREAM="${GIT_PROMPT_UPSTREAM//_UPSTREAM_/${GIT_UPSTREAM}}"
|
||||
fi
|
||||
|
||||
local GIT_STAGED=${git_status_fields[3]}
|
||||
local GIT_CONFLICTS=${git_status_fields[4]}
|
||||
local GIT_CHANGED=${git_status_fields[5]}
|
||||
local GIT_UNTRACKED=${git_status_fields[6]}
|
||||
local GIT_STASHED=${git_status_fields[7]}
|
||||
local GIT_CLEAN=${git_status_fields[8]}
|
||||
|
||||
local NEW_PROMPT="$EMPTY_PROMPT"
|
||||
if [[ -n "$git_status_fields" ]]; then
|
||||
local STATUS="${PROMPT_LEADING_SPACE}${GIT_PROMPT_PREFIX}${GIT_PROMPT_BRANCH}${GIT_BRANCH}${ResetColor}"
|
||||
|
||||
# __add_status KIND VALEXPR INSERT
|
||||
# eg: __add_status 'STAGED' '-ne 0'
|
||||
|
||||
__chk_gitvar_status() {
|
||||
local v
|
||||
if [[ "x$2" == "x-n" ]] ; then
|
||||
v="$2 \"\$GIT_$1\""
|
||||
else
|
||||
v="\$GIT_$1 $2"
|
||||
fi
|
||||
if eval "test $v" ; then
|
||||
if [[ $# -lt 2 || "$3" != '-' ]] && [[ "x$__GIT_PROMPT_SHOW_CHANGED_FILES_COUNT" == "x1" || "x$1" == "xREMOTE" ]]; then
|
||||
__add_status "\$GIT_PROMPT_$1\$GIT_$1\$ResetColor"
|
||||
else
|
||||
__add_status "\$GIT_PROMPT_$1\$ResetColor"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
__add_gitvar_status() {
|
||||
__add_status "\$GIT_PROMPT_$1\$GIT_$1\$ResetColor"
|
||||
}
|
||||
|
||||
# __add_status SOMETEXT
|
||||
__add_status() {
|
||||
eval "STATUS=\"$STATUS$1\""
|
||||
}
|
||||
|
||||
__add_status '$GIT_UPSTREAM'
|
||||
__chk_gitvar_status 'REMOTE' '-n'
|
||||
__add_status "$GIT_PROMPT_SEPARATOR"
|
||||
__chk_gitvar_status 'STAGED' '-ne 0'
|
||||
__chk_gitvar_status 'CONFLICTS' '-ne 0'
|
||||
__chk_gitvar_status 'CHANGED' '-ne 0'
|
||||
__chk_gitvar_status 'UNTRACKED' '-ne 0'
|
||||
__chk_gitvar_status 'STASHED' '-ne 0'
|
||||
__chk_gitvar_status 'CLEAN' '-eq 1' -
|
||||
__add_status "$ResetColor$GIT_PROMPT_SUFFIX"
|
||||
|
||||
NEW_PROMPT="$(gp_add_virtualenv_to_prompt)$PROMPT_START$($prompt_callback)$STATUS$PROMPT_END"
|
||||
else
|
||||
NEW_PROMPT="$EMPTY_PROMPT"
|
||||
fi
|
||||
|
||||
PS1="${NEW_PROMPT//_LAST_COMMAND_INDICATOR_/${LAST_COMMAND_INDICATOR}${ResetColor}}"
|
||||
command rm "$GIT_INDEX_PRIVATE" 2>/dev/null
|
||||
}
|
||||
|
||||
# Helper function that returns virtual env information to be set in prompt
|
||||
# Honors virtualenvs own setting VIRTUAL_ENV_DISABLE_PROMPT
|
||||
function gp_add_virtualenv_to_prompt {
|
||||
local ACCUMULATED_VENV_PROMPT=""
|
||||
local VENV=""
|
||||
if [[ -n "$VIRTUAL_ENV" && -z "${VIRTUAL_ENV_DISABLE_PROMPT-}" ]]; then
|
||||
VENV=$(basename "${VIRTUAL_ENV}")
|
||||
ACCUMULATED_VENV_PROMPT="${ACCUMULATED_VENV_PROMPT}${GIT_PROMPT_VIRTUALENV//_VIRTUALENV_/${VENV}}"
|
||||
fi
|
||||
if [[ -n "$CONDA_DEFAULT_ENV" ]]; then
|
||||
VENV=$(basename "${CONDA_DEFAULT_ENV}")
|
||||
ACCUMULATED_VENV_PROMPT="${ACCUMULATED_VENV_PROMPT}${GIT_PROMPT_VIRTUALENV//_VIRTUALENV_/${VENV}}"
|
||||
fi
|
||||
echo "$ACCUMULATED_VENV_PROMPT"
|
||||
}
|
||||
|
||||
# Use exit status from declare command to determine whether input argument is a
|
||||
# bash function
|
||||
function is_function {
|
||||
declare -Ff "$1" >/dev/null;
|
||||
}
|
||||
|
||||
# Helper function that truncates $PWD depending on window width
|
||||
function gp_truncate_pwd {
|
||||
local tilde="~"
|
||||
local newPWD="${PWD/#${HOME}/${tilde}}"
|
||||
local pwdmaxlen=$((${COLUMNS:-80}/3))
|
||||
[ ${#newPWD} -gt $pwdmaxlen ] && newPWD="...${newPWD:3-$pwdmaxlen}"
|
||||
echo -n "$newPWD"
|
||||
}
|
||||
|
||||
# Sets the window title to the given argument string
|
||||
function gp_set_window_title {
|
||||
echo -ne "\[\033]0;"$@"\007\]"
|
||||
}
|
||||
|
||||
function prompt_callback_default {
|
||||
return
|
||||
}
|
||||
|
||||
# toggle gitprompt
|
||||
function git_prompt_toggle() {
|
||||
if [[ "$GIT_PROMPT_DISABLE" = 1 ]]; then
|
||||
GIT_PROMPT_DISABLE=0
|
||||
else
|
||||
GIT_PROMPT_DISABLE=1
|
||||
fi
|
||||
return
|
||||
}
|
||||
|
||||
function gp_install_prompt {
|
||||
if [ -z "$OLD_GITPROMPT" ]; then
|
||||
OLD_GITPROMPT=$PS1
|
||||
fi
|
||||
|
||||
if [ -z "$GIT_PROMPT_OLD_DIR_WAS_GIT" ]; then
|
||||
GIT_PROMPT_OLD_DIR_WAS_GIT=$(we_are_on_repo)
|
||||
fi
|
||||
|
||||
if [ -z "$PROMPT_COMMAND" ]; then
|
||||
PROMPT_COMMAND=setGitPrompt
|
||||
else
|
||||
PROMPT_COMMAND=${PROMPT_COMMAND%% }; # remove trailing spaces
|
||||
PROMPT_COMMAND=${PROMPT_COMMAND%\;}; # remove trailing semi-colon
|
||||
|
||||
local new_entry="setGitPrompt"
|
||||
case ";$PROMPT_COMMAND;" in
|
||||
*";$new_entry;"*)
|
||||
# echo "PROMPT_COMMAND already contains: $new_entry"
|
||||
:;;
|
||||
*)
|
||||
PROMPT_COMMAND="$PROMPT_COMMAND;$new_entry"
|
||||
# echo "PROMPT_COMMAND does not contain: $new_entry"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
local setLastCommandStateEntry="setLastCommandState"
|
||||
case ";$PROMPT_COMMAND;" in
|
||||
*";$setLastCommandStateEntry;"*)
|
||||
# echo "PROMPT_COMMAND already contains: $setLastCommandStateEntry"
|
||||
:;;
|
||||
*)
|
||||
PROMPT_COMMAND="$setLastCommandStateEntry;$PROMPT_COMMAND"
|
||||
# echo "PROMPT_COMMAND does not contain: $setLastCommandStateEntry"
|
||||
;;
|
||||
esac
|
||||
|
||||
git_prompt_dir
|
||||
source "$__GIT_PROMPT_DIR/git-prompt-help.sh"
|
||||
}
|
||||
|
||||
gp_install_prompt
|
||||
Executable
+153
@@ -0,0 +1,153 @@
|
||||
#!/usr/bin/env python
|
||||
# -*- coding: UTF-8 -*-
|
||||
|
||||
"""This module defines a Print function to use with python 2.x or 3.x., so we can use the prompt with older versions of
|
||||
Python too
|
||||
|
||||
It's interface is that of python 3.0's print. See
|
||||
http://docs.python.org/3.0/library/functions.html?highlight=print#print
|
||||
|
||||
Shamelessly ripped from
|
||||
http://www.daniweb.com/software-development/python/code/217214/a-print-function-for-different-versions-of-python
|
||||
"""
|
||||
# change those symbols to whatever you prefer
|
||||
symbols = {'ahead of': '↑·', 'behind': '↓·', 'prehash': ':'}
|
||||
|
||||
import sys
|
||||
import re
|
||||
from subprocess import Popen, PIPE
|
||||
|
||||
__all__ = ["Print"]
|
||||
|
||||
try:
|
||||
Print = eval("print") # python 3.0 case
|
||||
python_version = 3
|
||||
to_str = str
|
||||
except SyntaxError as e:
|
||||
python_version = 2
|
||||
to_str = unicode
|
||||
D = dict()
|
||||
try:
|
||||
exec ("from __future__ import print_function\np=print", D)
|
||||
Print = D["p"] # 2.6 case
|
||||
except SyntaxError:
|
||||
def Print(*args, **kwd): # 2.4, 2.5, define our own Print function
|
||||
fout = kwd.get("file", sys.stdout)
|
||||
w = fout.write
|
||||
if args:
|
||||
w(str(args[0]))
|
||||
sep = kwd.get("sep", " ")
|
||||
for a in args[1:]:
|
||||
w(sep)
|
||||
w(str(a))
|
||||
w(kwd.get("end", "\n"))
|
||||
finally:
|
||||
del D
|
||||
|
||||
|
||||
def get_tag_or_hash():
|
||||
cmd = Popen(['git', 'describe', '--exact-match'], stdout=PIPE, stderr=PIPE)
|
||||
so, se = cmd.communicate()
|
||||
tag = '%s' % so.decode('utf-8').strip()
|
||||
|
||||
if tag:
|
||||
return tag
|
||||
else:
|
||||
cmd = Popen(['git', 'rev-parse', '--short', 'HEAD'], stdout=PIPE, stderr=PIPE)
|
||||
so, se = cmd.communicate()
|
||||
hash_name = '%s' % so.decode('utf-8').strip()
|
||||
return ''.join([symbols['prehash'], hash_name])
|
||||
|
||||
|
||||
def get_stash():
|
||||
cmd = Popen(['git', 'rev-parse', '--git-dir'], stdout=PIPE, stderr=PIPE)
|
||||
so, se = cmd.communicate()
|
||||
stash_file = '%s%s' % (so.decode('utf-8').rstrip(), '/logs/refs/stash')
|
||||
|
||||
try:
|
||||
with open(stash_file) as f:
|
||||
return sum(1 for _ in f)
|
||||
except IOError:
|
||||
return 0
|
||||
|
||||
|
||||
# `git status --porcelain --branch` can collect all information
|
||||
# branch, remote_branch, untracked, staged, changed, conflicts, ahead, behind
|
||||
po = Popen(['git', 'status', '--porcelain', '--branch'], env={'LC_ALL': 'C'}, stdout=PIPE, stderr=PIPE)
|
||||
stdout, stderr = po.communicate()
|
||||
if po.returncode != 0:
|
||||
sys.exit(0) # Not a git repository
|
||||
|
||||
# collect git status information
|
||||
untracked, staged, changed, conflicts = [], [], [], []
|
||||
num_ahead, num_behind = 0, 0
|
||||
ahead, behind = '', ''
|
||||
branch = ''
|
||||
remote = ''
|
||||
status = [(line[0], line[1], line[2:]) for line in stdout.decode('utf-8').splitlines()]
|
||||
for st in status:
|
||||
if st[0] == '#' and st[1] == '#':
|
||||
if re.search('Initial commit on', st[2]):
|
||||
branch = st[2].split(' ')[-1]
|
||||
elif re.search('no branch', st[2]): # detached status
|
||||
branch = get_tag_or_hash()
|
||||
elif len(st[2].strip().split('...')) == 1:
|
||||
branch = st[2].strip()
|
||||
else:
|
||||
# current and remote branch info
|
||||
branch, rest = st[2].strip().split('...')
|
||||
if len(rest.split(' ')) == 1:
|
||||
# remote_branch = rest.split(' ')[0]
|
||||
pass
|
||||
else:
|
||||
# ahead or behind
|
||||
divergence = ' '.join(rest.split(' ')[1:])
|
||||
divergence = divergence.lstrip('[').rstrip(']')
|
||||
for div in divergence.split(', '):
|
||||
if 'ahead' in div:
|
||||
num_ahead = int(div[len('ahead '):].strip())
|
||||
ahead = '%s%s' % (symbols['ahead of'], num_ahead)
|
||||
elif 'behind' in div:
|
||||
num_behind = int(div[len('behind '):].strip())
|
||||
behind = '%s%s' % (symbols['behind'], num_behind)
|
||||
remote = ''.join([behind, ahead])
|
||||
elif st[0] == '?' and st[1] == '?':
|
||||
untracked.append(st)
|
||||
else:
|
||||
if st[1] == 'M':
|
||||
changed.append(st)
|
||||
if st[0] == 'U':
|
||||
conflicts.append(st)
|
||||
elif st[0] != ' ':
|
||||
staged.append(st)
|
||||
|
||||
stashed = get_stash()
|
||||
if not changed and not staged and not conflicts and not untracked and not stashed:
|
||||
clean = 1
|
||||
else:
|
||||
clean = 0
|
||||
|
||||
if remote == "":
|
||||
remote = '.'
|
||||
|
||||
if python_version == 2:
|
||||
remote = remote.decode('utf-8')
|
||||
|
||||
out = '\n'.join([
|
||||
branch,
|
||||
remote,
|
||||
to_str(len(staged)),
|
||||
to_str(len(conflicts)),
|
||||
to_str(len(changed)),
|
||||
to_str(len(untracked)),
|
||||
to_str(stashed),
|
||||
to_str(clean),
|
||||
to_str(python_version),
|
||||
])
|
||||
|
||||
|
||||
if python_version == 2:
|
||||
Print(out.encode('utf-8'))
|
||||
else:
|
||||
Print(out)
|
||||
|
||||
Executable
+121
@@ -0,0 +1,121 @@
|
||||
#!/usr/bin/env bash
|
||||
# -*- coding: utf-8 -*-
|
||||
# gitstatus.sh -- produce the current git repo status on STDOUT
|
||||
# Functionally equivalent to 'gitstatus.py', but written in bash (not python).
|
||||
#
|
||||
# Alan K. Stebbens <aks@stebbens.org> [http://github.com/aks]
|
||||
|
||||
if [ -z "${__GIT_PROMPT_DIR}" ]; then
|
||||
SOURCE="${BASH_SOURCE[0]}"
|
||||
while [ -h "${SOURCE}" ]; do
|
||||
DIR="$( cd -P "$( dirname "${SOURCE}" )" && pwd )"
|
||||
SOURCE="$(readlink "${SOURCE}")"
|
||||
[[ $SOURCE != /* ]] && SOURCE="${DIR}/${SOURCE}"
|
||||
done
|
||||
__GIT_PROMPT_DIR="$( cd -P "$( dirname "${SOURCE}" )" && pwd )"
|
||||
fi
|
||||
|
||||
gitstatus=$( LC_ALL=C git status --untracked-files=${__GIT_PROMPT_SHOW_UNTRACKED_FILES:-all} --porcelain --branch )
|
||||
|
||||
# if the status is fatal, exit now
|
||||
[[ "$?" -ne 0 ]] && exit 0
|
||||
|
||||
num_staged=0
|
||||
num_changed=0
|
||||
num_conflicts=0
|
||||
num_untracked=0
|
||||
while IFS='' read -r line || [[ -n "$line" ]]; do
|
||||
status=${line:0:2}
|
||||
while [[ -n $status ]]; do
|
||||
case "$status" in
|
||||
#two fixed character matches, loop finished
|
||||
\#\#) branch_line="${line/\.\.\./^}"; break ;;
|
||||
\?\?) ((num_untracked++)); break ;;
|
||||
U?) ((num_conflicts++)); break;;
|
||||
?U) ((num_conflicts++)); break;;
|
||||
DD) ((num_conflicts++)); break;;
|
||||
AA) ((num_conflicts++)); break;;
|
||||
#two character matches, first loop
|
||||
?M) ((num_changed++)) ;;
|
||||
?D) ((num_changed++)) ;;
|
||||
?\ ) ;;
|
||||
#single character matches, second loop
|
||||
U) ((num_conflicts++)) ;;
|
||||
\ ) ;;
|
||||
*) ((num_staged++)) ;;
|
||||
esac
|
||||
status=${status:0:(${#status}-1)}
|
||||
done
|
||||
done <<< "$gitstatus"
|
||||
|
||||
num_stashed=0
|
||||
if [[ "$__GIT_PROMPT_IGNORE_STASH" != "1" ]]; then
|
||||
stash_file="$( git rev-parse --git-dir )/logs/refs/stash"
|
||||
if [[ -e "${stash_file}" ]]; then
|
||||
while IFS='' read -r wcline || [[ -n "$wcline" ]]; do
|
||||
((num_stashed++))
|
||||
done < ${stash_file}
|
||||
fi
|
||||
fi
|
||||
|
||||
clean=0
|
||||
if (( num_changed == 0 && num_staged == 0 && num_untracked == 0 && num_stashed == 0 && num_conflicts == 0)) ; then
|
||||
clean=1
|
||||
fi
|
||||
|
||||
IFS="^" read -ra branch_fields <<< "${branch_line/\#\# }"
|
||||
branch="${branch_fields[0]}"
|
||||
remote=
|
||||
upstream=
|
||||
|
||||
if [[ "$branch" == *"Initial commit on"* ]]; then
|
||||
IFS=" " read -ra fields <<< "$branch"
|
||||
branch="${fields[3]}"
|
||||
remote="_NO_REMOTE_TRACKING_"
|
||||
elif [[ "$branch" == *"no branch"* ]]; then
|
||||
tag=$( git describe --tags --exact-match )
|
||||
if [[ -n "$tag" ]]; then
|
||||
branch="$tag"
|
||||
else
|
||||
branch="_PREHASH_$( git rev-parse --short HEAD )"
|
||||
fi
|
||||
else
|
||||
if [[ "${#branch_fields[@]}" -eq 1 ]]; then
|
||||
remote="_NO_REMOTE_TRACKING_"
|
||||
else
|
||||
IFS="[,]" read -ra remote_fields <<< "${branch_fields[1]}"
|
||||
upstream="${remote_fields[0]}"
|
||||
for remote_field in "${remote_fields[@]}"; do
|
||||
if [[ "$remote_field" == *ahead* ]]; then
|
||||
num_ahead=${remote_field:6}
|
||||
ahead="_AHEAD_${num_ahead}"
|
||||
fi
|
||||
if [[ "$remote_field" == *behind* ]]; then
|
||||
num_behind=${remote_field:7}
|
||||
behind="_BEHIND_${num_behind# }"
|
||||
fi
|
||||
done
|
||||
remote="${behind}${ahead}"
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ -z "$remote" ]] ; then
|
||||
remote='.'
|
||||
fi
|
||||
|
||||
if [[ -z "$upstream" ]] ; then
|
||||
upstream='^'
|
||||
fi
|
||||
|
||||
printf "%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n" \
|
||||
"$branch" \
|
||||
"$remote" \
|
||||
"$upstream" \
|
||||
$num_staged \
|
||||
$num_conflicts \
|
||||
$num_changed \
|
||||
$num_untracked \
|
||||
$num_stashed \
|
||||
$clean
|
||||
|
||||
exit
|
||||
+125
@@ -0,0 +1,125 @@
|
||||
#!/usr/bin/env bash
|
||||
# -*- coding: UTF-8 -*-
|
||||
# gitstatus.sh -- produce the current git repo status on STDOUT
|
||||
# Functionally equivalent to 'gitstatus.py', but written in bash (not python).
|
||||
#
|
||||
# Alan K. Stebbens <aks@stebbens.org> [http://github.com/aks]
|
||||
|
||||
# helper functions
|
||||
count_lines() { echo "$1" | egrep -c "^$2" ; }
|
||||
all_lines() { echo "$1" | grep -v "^$" | wc -l ; }
|
||||
|
||||
if [ -z "${__GIT_PROMPT_DIR}" ]; then
|
||||
SOURCE="${BASH_SOURCE[0]}"
|
||||
while [ -h "${SOURCE}" ]; do
|
||||
DIR="$( cd -P "$( dirname "${SOURCE}" )" && pwd )"
|
||||
SOURCE="$(readlink "${SOURCE}")"
|
||||
[[ $SOURCE != /* ]] && SOURCE="${DIR}/${SOURCE}"
|
||||
done
|
||||
__GIT_PROMPT_DIR="$( cd -P "$( dirname "${SOURCE}" )" && pwd )"
|
||||
fi
|
||||
|
||||
gitsym=$( git symbolic-ref HEAD 2>/dev/null )
|
||||
|
||||
#If exit status OK, we have a branch
|
||||
if [[ $? == 0 ]]; then
|
||||
# the current branch is the tail end of the symbolic reference
|
||||
branch="${gitsym##refs/heads/}" # get the basename after "refs/heads/"
|
||||
fi
|
||||
|
||||
gitstatus=$( git diff --name-status 2>&1 )
|
||||
|
||||
# if the diff is fatal, exit now
|
||||
if [[ $? != 0 ]]; then exit 0; fi
|
||||
|
||||
staged_files=$( git diff --staged --name-status )
|
||||
|
||||
num_changed=$(( $( all_lines "$gitstatus" ) - $( count_lines "$gitstatus" U ) ))
|
||||
num_conflicts=$( count_lines "$staged_files" U )
|
||||
num_staged=$(( $( all_lines "$staged_files" ) - num_conflicts ))
|
||||
num_untracked=$( git ls-files --others --exclude-standard $(git rev-parse --show-cdup) | wc -l )
|
||||
|
||||
num_stashed=0
|
||||
if [[ "$__GIT_PROMPT_IGNORE_STASH" != "1" ]]; then
|
||||
stash_file="$( git rev-parse --git-dir )/logs/refs/stash"
|
||||
if [[ -e "${stash_file}" ]]; then
|
||||
while IFS='' read -r wcline || [[ -n "$wcline" ]]; do
|
||||
((num_stashed++))
|
||||
done < ${stash_file}
|
||||
fi
|
||||
fi
|
||||
|
||||
clean=0
|
||||
if (( num_changed == 0 && num_staged == 0 && num_untracked == 0 && num_stashed == 0 && num_conflicts == 0 )) ; then
|
||||
clean=1
|
||||
fi
|
||||
|
||||
remote=
|
||||
upstream=
|
||||
|
||||
if [[ -z "$branch" ]]; then
|
||||
tag=$( git describe --tags --exact-match 2>/dev/null )
|
||||
if [[ -n "$tag" ]]; then
|
||||
branch="$tag"
|
||||
else
|
||||
branch="_PREHASH_$( git rev-parse --short HEAD )"
|
||||
fi
|
||||
else
|
||||
remote_name=$( git config branch.${branch}.remote )
|
||||
|
||||
if [[ -n "$remote_name" ]]; then
|
||||
merge_name=$( git config branch.${branch}.merge )
|
||||
else
|
||||
remote_name='origin'
|
||||
merge_name="refs/heads/${branch}"
|
||||
fi
|
||||
|
||||
if [[ "$remote_name" == '.' ]]; then
|
||||
remote_ref="$merge_name"
|
||||
else
|
||||
remote_ref="refs/remotes/$remote_name/${merge_name##refs/heads/}"
|
||||
fi
|
||||
|
||||
# detect if the local branch have a remote tracking branch
|
||||
upstream=$( git rev-parse --abbrev-ref ${branch}@{upstream} 2>&1 )
|
||||
|
||||
if [[ $? == 0 ]]; then
|
||||
# get the revision list, and count the leading "<" and ">"
|
||||
revgit=$( git rev-list --left-right ${remote_ref}...HEAD 2>/dev/null )
|
||||
if [[ $? == 0 ]]; then
|
||||
num_revs=$( all_lines "$revgit" )
|
||||
num_ahead=$( count_lines "$revgit" "^>" )
|
||||
num_behind=$(( num_revs - num_ahead ))
|
||||
if (( num_behind > 0 )) ; then
|
||||
remote="${remote}_BEHIND_${num_behind}"
|
||||
fi
|
||||
if (( num_ahead > 0 )) ; then
|
||||
remote="${remote}_AHEAD_${num_ahead}"
|
||||
fi
|
||||
fi
|
||||
else
|
||||
remote='_NO_REMOTE_TRACKING_'
|
||||
unset upstream
|
||||
fi
|
||||
fi
|
||||
|
||||
if [[ -z "$remote" ]] ; then
|
||||
remote='.'
|
||||
fi
|
||||
|
||||
if [[ -z "$upstream" ]] ; then
|
||||
upstream='^'
|
||||
fi
|
||||
|
||||
printf "%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n" \
|
||||
"$branch" \
|
||||
"$remote" \
|
||||
"$upstream" \
|
||||
$num_staged \
|
||||
$num_conflicts \
|
||||
$num_changed \
|
||||
$num_untracked \
|
||||
$num_stashed \
|
||||
$clean
|
||||
|
||||
exit
|
||||
@@ -0,0 +1,82 @@
|
||||
#!/usr/bin/env bash
|
||||
# prompt-colors.sh
|
||||
#
|
||||
# source this file to get color definitions
|
||||
# if $debug or $verbose is set, the definitions
|
||||
# are also printed to STDERR.
|
||||
|
||||
define_color_names() {
|
||||
|
||||
ColorNames=( Black Red Green Yellow Blue Magenta Cyan White )
|
||||
FgColors=( 30 31 32 33 34 35 36 37 )
|
||||
BgColors=( 40 41 42 43 44 45 46 47 )
|
||||
|
||||
local AttrNorm=0
|
||||
local AttrBright=1
|
||||
local AttrDim=2
|
||||
local AttrUnder=4
|
||||
local AttrBlink=5
|
||||
local AttrRev=7
|
||||
local AttrHide=8
|
||||
|
||||
# define "BoldCOLOR", "BrightCOLOR", and "DimCOLOR" names
|
||||
|
||||
# _map_colors ATTRNAME ATTRVALUE
|
||||
#
|
||||
# Defines three names for every color, attribute combintaion:
|
||||
# {ATTRNAME}{COLORNAME}
|
||||
# {ATTRNAME}{COLORNAME}Fg
|
||||
# {ATTRNAME}{COLORNAME}Bg
|
||||
#
|
||||
# Example: BoldRed, BoldRedFg, BoldRedBg
|
||||
|
||||
_map_colors() {
|
||||
local x=0
|
||||
local attrname="$1"
|
||||
local attrcode=$2
|
||||
while (( x < 8 )) ; do
|
||||
local colorname=${ColorNames[x]}
|
||||
local fgcolorcode=${FgColors[x]}
|
||||
local bgcolorcode=${BgColors[x]}
|
||||
longcolorname="${attrname}${colorname}"
|
||||
_def_color $longcolorname $attrcode $fgcolorcode
|
||||
_def_color ${longcolorname}Fg $attrcode $fgcolorcode
|
||||
_def_color ${longcolorname}Bg $attrcode $bgcolorcode
|
||||
(( x++ ))
|
||||
done
|
||||
}
|
||||
|
||||
# _term_color [ N | N M ]
|
||||
_term_color() {
|
||||
local cv
|
||||
if (( $# > 1 )); then
|
||||
cv="${1};${2}"
|
||||
else
|
||||
cv="${1}"
|
||||
fi
|
||||
echo "\[\033[${cv}m\]"
|
||||
}
|
||||
|
||||
# def_color NAME ATTRCODE COLORCODE
|
||||
_def_color() {
|
||||
local def="$1=\"\`_term_color $2 $3\`\""
|
||||
if [[ -n "$debug$verbose" ]]; then
|
||||
echo 1>&2 "+ $def"
|
||||
fi
|
||||
eval "$def"
|
||||
}
|
||||
|
||||
_map_colors Bold $AttrBright
|
||||
_map_colors Bright $AttrBright
|
||||
_map_colors Dim $AttrDim
|
||||
_map_colors '' $AttrNorm
|
||||
|
||||
_def_color IntenseBlack 0 90
|
||||
_def_color ResetColor 0 0
|
||||
|
||||
}
|
||||
|
||||
# do the color definitions only once
|
||||
if [[ ${#ColorNames[*]} = 0 || -z "$IntenseBlack" || -z "$ResetColor" ]]; then
|
||||
define_color_names
|
||||
fi
|
||||
@@ -0,0 +1,31 @@
|
||||
# This theme for gitprompt.sh is designed for dark color schemes
|
||||
# it is clone of oh-my-zsh crunch theme style with exit status
|
||||
|
||||
override_git_prompt_colors() {
|
||||
if [ -e ~/.rvm/bin/rvm-prompt ]; then
|
||||
RUBY_PROMPT='{$(~/.rvm/bin/rvm-prompt i v)}'
|
||||
else
|
||||
if command -v rbenv > /dev/null; then
|
||||
RUBY_PROMPT='{$(rbenv version | sed -e "s/ (set.*$//")}'
|
||||
fi
|
||||
fi
|
||||
Time12a="\$(date +%H:%M)"
|
||||
|
||||
|
||||
GIT_PROMPT_THEME_NAME="Chmike"
|
||||
GIT_PROMPT_BRANCH="${Green}"
|
||||
GIT_PROMPT_REMOTE=" "
|
||||
GIT_PROMPT_SYMBOLS_NO_REMOTE_TRACKING="⭐"
|
||||
|
||||
GIT_PROMPT_SEPARATOR="|"
|
||||
GIT_PROMPT_CHANGED="${Cyan}❗"
|
||||
GIT_PROMPT_STAGED="${Yellow}▸"
|
||||
GIT_PROMPT_UNTRACKED="${Blue}…"
|
||||
GIT_PROMPT_CONFLICTS="${BoldRed}❓"
|
||||
GIT_PROMPT_STASHED="${Magenta}>"
|
||||
GIT_PROMPT_CLEAN="${Green}✔ "
|
||||
GIT_PROMPT_COMMAND_OK="${Green}✔"
|
||||
GIT_PROMPT_COMMAND_FAIL="${Red}✘"
|
||||
}
|
||||
|
||||
reload_git_prompt_colors "Crunch"
|
||||
@@ -0,0 +1,34 @@
|
||||
# This theme for gitprompt.sh is designed for dark color schemes
|
||||
# it is clone of oh-my-zsh crunch theme style with exit status
|
||||
|
||||
override_git_prompt_colors() {
|
||||
if [ -e ~/.rvm/bin/rvm-prompt ]; then
|
||||
RUBY_PROMPT='{$(~/.rvm/bin/rvm-prompt i v)}'
|
||||
else
|
||||
if command -v rbenv > /dev/null; then
|
||||
RUBY_PROMPT='{$(rbenv version | sed -e "s/ (set.*$//")}'
|
||||
fi
|
||||
fi
|
||||
Time12a="\$(date +%H:%M)"
|
||||
|
||||
GIT_PROMPT_THEME_NAME="Crunch"
|
||||
GIT_PROMPT_STAGED="${Yellow}● "
|
||||
GIT_PROMPT_UNTRACKED="${Cyan}… "
|
||||
GIT_PROMPT_STASHED="${BoldMagenta}⚑ "
|
||||
GIT_PROMPT_CLEAN="${Green}✔ "
|
||||
GIT_PROMPT_COMMAND_OK="${Green}✔ "
|
||||
GIT_PROMPT_COMMAND_FAIL="${Red}✘ "
|
||||
|
||||
KERNEL_PROMPT='‹$(uname -r)›'
|
||||
|
||||
GIT_PROMPT_START_USER="_LAST_COMMAND_INDICATOR_${White}{${Yellow}${Time12a}${White}}[${Magenta}${RUBY_PROMPT}${White}]${Cyan}${PathShort}${White}:"
|
||||
GIT_PROMPT_START_ROOT="${GIT_PROMPT_START_USER}"
|
||||
GIT_PROMPT_END_USER="${BoldBlue} ➭ ${ResetColor}"
|
||||
GIT_PROMPT_END_ROOT="${BoldRed} # ${ResetColor}"
|
||||
GIT_PROMPT_LEADING_SPACE=0
|
||||
GIT_PROMPT_PREFIX="${Green}["
|
||||
GIT_PROMPT_SUFFIX="${Green}]"
|
||||
GIT_PROMPT_SYMBOLS_NO_REMOTE_TRACKING="✭"
|
||||
}
|
||||
|
||||
reload_git_prompt_colors "Crunch"
|
||||
@@ -0,0 +1,58 @@
|
||||
# This is the custom theme template for gitprompt.sh
|
||||
|
||||
# These are the defaults from the "Default" theme
|
||||
# You just need to override what you want to have changed
|
||||
override_git_prompt_colors() {
|
||||
GIT_PROMPT_THEME_NAME="Custom"
|
||||
|
||||
# Time12a="\$(date +%H:%M)"
|
||||
# PathShort="\w";
|
||||
|
||||
## These are the color definitions used by gitprompt.sh
|
||||
# GIT_PROMPT_PREFIX="[" # start of the git info string
|
||||
# GIT_PROMPT_SUFFIX="]" # the end of the git info string
|
||||
# GIT_PROMPT_SEPARATOR="|" # separates each item
|
||||
|
||||
# GIT_PROMPT_BRANCH="${Magenta}" # the git branch that is active in the current directory
|
||||
# GIT_PROMPT_STAGED="${Red}●" # the number of staged files/directories
|
||||
# GIT_PROMPT_CONFLICTS="${Red}✖ " # the number of files in conflict
|
||||
# GIT_PROMPT_CHANGED="${Blue}✚ " # the number of changed files
|
||||
|
||||
# GIT_PROMPT_REMOTE=" " # the remote branch name (if any) and the symbols for ahead and behind
|
||||
# GIT_PROMPT_UNTRACKED="${Cyan}…" # the number of untracked files/dirs
|
||||
# GIT_PROMPT_STASHED="${BoldBlue}⚑ " # the number of stashed files/dir
|
||||
# GIT_PROMPT_CLEAN="${BoldGreen}✔" # a colored flag indicating a "clean" repo
|
||||
|
||||
## For the command indicator, the placeholder _LAST_COMMAND_STATE_
|
||||
## will be replaced with the exit code of the last command
|
||||
## e.g.
|
||||
## GIT_PROMPT_COMMAND_OK="${Green}✔-_LAST_COMMAND_STATE_ " # indicator if the last command returned with an exit code of 0
|
||||
## GIT_PROMPT_COMMAND_FAIL="${Red}✘-_LAST_COMMAND_STATE_ " # indicator if the last command returned with an exit code of other than 0
|
||||
|
||||
# GIT_PROMPT_COMMAND_OK="${Green}✔" # indicator if the last command returned with an exit code of 0
|
||||
# GIT_PROMPT_COMMAND_FAIL="${Red}✘-_LAST_COMMAND_STATE_" # indicator if the last command returned with an exit code of other than 0
|
||||
|
||||
## template for displaying the current virtual environment
|
||||
## use the placeholder _VIRTUALENV_ will be replaced with
|
||||
## the name of the current virtual environment (currently CONDA and VIRTUAL_ENV)
|
||||
# GIT_PROMPT_VIRTUALENV="(${Blue}_VIRTUALENV_${ResetColor}) "
|
||||
|
||||
# template for displaying the current remote tracking branch
|
||||
# use the placeholder _UPSTREAM_ will be replaced with
|
||||
# the name of the current remote tracking branch
|
||||
# GIT_PROMPT_UPSTREAM=" {${Blue}_UPSTREAM_${ResetColor}}"
|
||||
|
||||
## _LAST_COMMAND_INDICATOR_ will be replaced by the appropriate GIT_PROMPT_COMMAND_OK OR GIT_PROMPT_COMMAND_FAIL
|
||||
# GIT_PROMPT_START_USER="_LAST_COMMAND_INDICATOR_ ${Yellow}${PathShort}${ResetColor}"
|
||||
# GIT_PROMPT_START_ROOT="_LAST_COMMAND_INDICATOR_ ${GIT_PROMPT_START_USER}"
|
||||
# GIT_PROMPT_END_USER=" \n${White}${Time12a}${ResetColor} $ "
|
||||
# GIT_PROMPT_END_ROOT=" \n${White}${Time12a}${ResetColor} # "
|
||||
|
||||
## Please do not add colors to these symbols
|
||||
# GIT_PROMPT_SYMBOLS_AHEAD="↑·" # The symbol for "n versions ahead of origin"
|
||||
# GIT_PROMPT_SYMBOLS_BEHIND="↓·" # The symbol for "n versions behind of origin"
|
||||
# GIT_PROMPT_SYMBOLS_PREHASH=":" # Written before hash of commit, if no name could be found
|
||||
# GIT_PROMPT_SYMBOLS_NO_REMOTE_TRACKING="L" # This symbol is written after the branch, if the branch is not tracked
|
||||
}
|
||||
|
||||
reload_git_prompt_colors "Custom"
|
||||
@@ -0,0 +1,106 @@
|
||||
# This is the default theme for gitprompt.sh
|
||||
|
||||
unset_git_prompt_colors() {
|
||||
unset Time12a
|
||||
unset PathShort
|
||||
unset GIT_PROMPT_PREFIX
|
||||
unset GIT_PROMPT_SUFFIX
|
||||
unset GIT_PROMPT_SEPARATOR
|
||||
unset GIT_PROMPT_BRANCH
|
||||
unset GIT_PROMPT_STAGED
|
||||
unset GIT_PROMPT_CONFLICTS
|
||||
unset GIT_PROMPT_CHANGED
|
||||
unset GIT_PROMPT_REMOTE
|
||||
unset GIT_PROMPT_UNTRACKED
|
||||
unset GIT_PROMPT_STASHED
|
||||
unset GIT_PROMPT_CLEAN
|
||||
unset GIT_PROMPT_COMMAND_OK
|
||||
unset GIT_PROMPT_COMMAND_FAIL
|
||||
unset GIT_PROMPT_VIRTUALENV
|
||||
unset GIT_PROMPT_UPSTREAM
|
||||
unset GIT_PROMPT_START_USER
|
||||
unset GIT_PROMPT_START_ROOT
|
||||
unset GIT_PROMPT_END_USER
|
||||
unset GIT_PROMPT_END_ROOT
|
||||
unset GIT_PROMPT_SYMBOLS_AHEAD
|
||||
unset GIT_PROMPT_SYMBOLS_BEHIND
|
||||
unset GIT_PROMPT_SYMBOLS_PREHASH
|
||||
unset GIT_PROMPT_SYMBOLS_NO_REMOTE_TRACKING
|
||||
}
|
||||
|
||||
define_helpers() {
|
||||
Time12a="\$(date +%H:%M)"
|
||||
PathShort="\w";
|
||||
}
|
||||
|
||||
define_undefined_git_prompt_colors() {
|
||||
if [ -z ${GIT_PROMPT_THEME_NAME+x} ]; then GIT_PROMPT_THEME_NAME="Default"; fi
|
||||
|
||||
# These are the color definitions used by gitprompt.sh
|
||||
if [ -z ${GIT_PROMPT_PREFIX+x} ]; then GIT_PROMPT_PREFIX="["; fi # start of the git info string
|
||||
if [ -z ${GIT_PROMPT_SUFFIX+x} ]; then GIT_PROMPT_SUFFIX="]"; fi # the end of the git info string
|
||||
if [ -z ${GIT_PROMPT_SEPARATOR+x} ]; then GIT_PROMPT_SEPARATOR="|"; fi # separates each item
|
||||
|
||||
if [ -z ${GIT_PROMPT_BRANCH+x} ]; then GIT_PROMPT_BRANCH="${Magenta}"; fi # the git branch that is active in the current directory
|
||||
if [ -z ${GIT_PROMPT_STAGED+x} ]; then GIT_PROMPT_STAGED="${Red}●"; fi # the number of staged files/directories
|
||||
if [ -z ${GIT_PROMPT_CONFLICTS+x} ]; then GIT_PROMPT_CONFLICTS="${Red}✖ "; fi # the number of files in conflict
|
||||
if [ -z ${GIT_PROMPT_CHANGED+x} ]; then GIT_PROMPT_CHANGED="${Blue}✚ "; fi # the number of changed files
|
||||
|
||||
if [ -z ${GIT_PROMPT_REMOTE+x} ]; then GIT_PROMPT_REMOTE=" "; fi # the remote branch name (if any) and the symbols for ahead and behind
|
||||
if [ -z ${GIT_PROMPT_UNTRACKED+x} ]; then GIT_PROMPT_UNTRACKED="${Cyan}…"; fi # the number of untracked files/dirs
|
||||
if [ -z ${GIT_PROMPT_STASHED+x} ]; then GIT_PROMPT_STASHED="${BoldBlue}⚑ "; fi # the number of stashed files/dir
|
||||
if [ -z ${GIT_PROMPT_CLEAN+x} ]; then GIT_PROMPT_CLEAN="${BoldGreen}✔"; fi # a colored flag indicating a "clean" repo
|
||||
|
||||
# For the command indicator, the placeholder _LAST_COMMAND_STATE_
|
||||
# will be replaced with the exit code of the last command
|
||||
# e.g.
|
||||
# GIT_PROMPT_COMMAND_OK="${Green}✔-_LAST_COMMAND_STATE_ " # indicator if the last command returned with an exit code of 0
|
||||
# GIT_PROMPT_COMMAND_FAIL="${Red}✘-_LAST_COMMAND_STATE_ " # indicator if the last command returned with an exit code of other than 0
|
||||
|
||||
if [ -z ${GIT_PROMPT_COMMAND_OK+x} ]; then GIT_PROMPT_COMMAND_OK="${Green}✔"; fi # indicator if the last command returned with an exit code of 0
|
||||
if [ -z ${GIT_PROMPT_COMMAND_FAIL+x} ]; then GIT_PROMPT_COMMAND_FAIL="${Red}✘-_LAST_COMMAND_STATE_"; fi # indicator if the last command returned with an exit code of other than 0
|
||||
|
||||
# Possible to change which command is used to create git status information
|
||||
# There are three options:
|
||||
# 1) gitstatus.sh (uses git status --branch --porcelain - fast, requires git > 1.7.10)
|
||||
# 2) gitstatus_pre-1.7.10.sh (Uses a variety of git commands and pipes - slower, works with older git clients)
|
||||
# 3) gitstatus.py (Unsupported, lack features found in the bash versions)
|
||||
if [ -z ${GIT_PROMPT_STATUS_COMMAND+x} ]; then GIT_PROMPT_STATUS_COMMAND="gitstatus.sh"; fi # Point out the command to get the git status from
|
||||
|
||||
# template for displaying the current virtual environment
|
||||
# use the placeholder _VIRTUALENV_ will be replaced with
|
||||
# the name of the current virtual environment (currently CONDA and VIRTUAL_ENV)
|
||||
if [ -z ${GIT_PROMPT_VIRTUALENV+x} ]; then GIT_PROMPT_VIRTUALENV="(${Blue}_VIRTUALENV_${ResetColor}) "; fi
|
||||
|
||||
# template for displaying the current remote tracking branch
|
||||
# use the placeholder _UPSTREAM_ will be replaced with
|
||||
# the name of the current remote tracking branch
|
||||
if [ -z ${GIT_PROMPT_UPSTREAM+x} ]; then GIT_PROMPT_UPSTREAM=" {${Blue}_UPSTREAM_${ResetColor}}"; fi
|
||||
|
||||
# _LAST_COMMAND_INDICATOR_ will be replaced by the appropriate GIT_PROMPT_COMMAND_OK OR GIT_PROMPT_COMMAND_FAIL
|
||||
if [ -z ${GIT_PROMPT_START_USER+x} ]; then GIT_PROMPT_START_USER="_LAST_COMMAND_INDICATOR_ ${Yellow}${PathShort}${ResetColor}"; fi
|
||||
if [ -z ${GIT_PROMPT_START_ROOT+x} ]; then GIT_PROMPT_START_ROOT="${GIT_PROMPT_START_USER}"; fi
|
||||
if [ -z ${GIT_PROMPT_END_USER+x} ]; then GIT_PROMPT_END_USER=" \n${White}${Time12a}${ResetColor} $ "; fi
|
||||
if [ -z ${GIT_PROMPT_END_ROOT+x} ]; then GIT_PROMPT_END_ROOT=" \n${White}${Time12a}${ResetColor} # "; fi
|
||||
|
||||
# Please do not add colors to these symbols
|
||||
if [ -z ${GIT_PROMPT_SYMBOLS_AHEAD+x} ]; then GIT_PROMPT_SYMBOLS_AHEAD="↑·"; fi # The symbol for "n versions ahead of origin"
|
||||
if [ -z ${GIT_PROMPT_SYMBOLS_BEHIND+x} ]; then GIT_PROMPT_SYMBOLS_BEHIND="↓·"; fi # The symbol for "n versions behind of origin"
|
||||
if [ -z ${GIT_PROMPT_SYMBOLS_PREHASH+x} ]; then GIT_PROMPT_SYMBOLS_PREHASH=":"; fi # Written before hash of commit, if no name could be found
|
||||
if [ -z ${GIT_PROMPT_SYMBOLS_NO_REMOTE_TRACKING+x} ]; then GIT_PROMPT_SYMBOLS_NO_REMOTE_TRACKING="L"; fi # This symbol is written after the branch, if the branch is not tracked
|
||||
}
|
||||
|
||||
# call only from theme file
|
||||
reload_git_prompt_colors() {
|
||||
if [[ "${GIT_PROMPT_THEME_NAME}" != $1 ]]; then
|
||||
unset_git_prompt_colors
|
||||
define_helpers
|
||||
override_git_prompt_colors
|
||||
define_undefined_git_prompt_colors
|
||||
fi
|
||||
}
|
||||
|
||||
if [[ "${GIT_PROMPT_THEME}" == "Default" && "${GIT_PROMPT_THEME_NAME}" != "Default" ]]; then
|
||||
define_helpers
|
||||
define_undefined_git_prompt_colors
|
||||
fi
|
||||
@@ -0,0 +1,11 @@
|
||||
# This is the default theme for gitprompt.sh
|
||||
# without the indicator of the last command state
|
||||
|
||||
override_git_prompt_colors() {
|
||||
GIT_PROMPT_THEME_NAME="Default NoExitState"
|
||||
GIT_PROMPT_COMMAND_FAIL="${Red}✘" # indicator if the last command returned with an exit code of other than 0
|
||||
GIT_PROMPT_START_USER="${Yellow}${PathShort}${ResetColor}"
|
||||
GIT_PROMPT_START_ROOT="${GIT_PROMPT_START_USER}"
|
||||
}
|
||||
|
||||
reload_git_prompt_colors "Default NoExitState"
|
||||
@@ -0,0 +1,15 @@
|
||||
# This is the default theme for gitprompt.sh
|
||||
# without the indicator of the last command state
|
||||
# tweaked for Ubuntu terminal fonts
|
||||
|
||||
override_git_prompt_colors() {
|
||||
GIT_PROMPT_THEME_NAME="Default NoExitState Ubuntu"
|
||||
GIT_PROMPT_STAGED="${Red}● " # the number of staged files/directories
|
||||
GIT_PROMPT_CLEAN="${BoldGreen}✔ " # a colored flag indicating a "clean" repo
|
||||
GIT_PROMPT_COMMAND_OK="${Green}✔ " # indicator if the last command returned with an exit code of 0
|
||||
GIT_PROMPT_COMMAND_FAIL="${Red}✘ " # indicator if the last command returned with an exit code of other than 0
|
||||
GIT_PROMPT_START_USER="${Yellow}${PathShort}${ResetColor}"
|
||||
GIT_PROMPT_START_ROOT="${GIT_PROMPT_START_USER}"
|
||||
}
|
||||
|
||||
reload_git_prompt_colors "Default NoExitState Ubuntu"
|
||||
@@ -0,0 +1,11 @@
|
||||
# This is the default theme for gitprompt.sh
|
||||
# tweaked for Ubuntu terminal fonts
|
||||
|
||||
override_git_prompt_colors() {
|
||||
GIT_PROMPT_THEME_NAME="Default Ubuntu"
|
||||
GIT_PROMPT_STAGED="${Red}● " # the number of staged files/directories
|
||||
GIT_PROMPT_CLEAN="${BoldGreen}✔ " # a colored flag indicating a "clean" repo
|
||||
GIT_PROMPT_COMMAND_OK="${Green}✔ " # indicator if the last command returned with an exit code of 0
|
||||
}
|
||||
|
||||
reload_git_prompt_colors "Default Ubuntu"
|
||||
@@ -0,0 +1,30 @@
|
||||
# This theme for gitprompt.sh is designed for dark color schemes
|
||||
# It is most suitable for Retina or high resolution displays
|
||||
|
||||
override_git_prompt_colors() {
|
||||
GIT_PROMPT_THEME_NAME="Evermeet"
|
||||
|
||||
GIT_PROMPT_PREFIX="" # start of the git info string
|
||||
GIT_PROMPT_SUFFIX="" # the end of the git info string
|
||||
GIT_PROMPT_SEPARATOR="|" # separates each item
|
||||
|
||||
GIT_PROMPT_BRANCH="${Magenta}" # the git branch that is active in the current directory
|
||||
GIT_PROMPT_STAGED="${Cyan}●" # the number of staged files/directories
|
||||
GIT_PROMPT_CONFLICTS="${BoldRed}✖" # the number of files in conflict
|
||||
GIT_PROMPT_CHANGED="${Cyan}✚" # the number of changed files
|
||||
|
||||
GIT_PROMPT_UNTRACKED="${Cyan}…" # the number of untracked files/dirs
|
||||
GIT_PROMPT_STASHED="${Magenta}⚑" # the number of stashed files/dir
|
||||
GIT_PROMPT_CLEAN="${BoldGreen}✔" # a colored flag indicating a "clean" repo
|
||||
|
||||
GIT_PROMPT_UPSTREAM=" {${Magenta}_UPSTREAM_${ResetColor}}"
|
||||
|
||||
GIT_PROMPT_START_USER="[${BoldGreen}\u@\h${ResetColor} ${BoldYellow}\${?}${ResetColor} ${BoldBlue}\w${ResetColor}"
|
||||
GIT_PROMPT_START_ROOT="[${BoldRed}\u@\h${ResetColor} ${BoldYellow}\${?}${ResetColor} ${BoldBlue}\w${ResetColor}"
|
||||
GIT_PROMPT_END_USER="]$ "
|
||||
GIT_PROMPT_END_ROOT="]# "
|
||||
|
||||
GIT_PROMPT_SYMBOLS_NO_REMOTE_TRACKING="⭑" # This symbol is written after the branch, if the branch is not tracked
|
||||
}
|
||||
|
||||
reload_git_prompt_colors "Evermeet"
|
||||
@@ -0,0 +1,32 @@
|
||||
# This theme for gitprompt.sh is designed for dark color schemes
|
||||
# On lowres screens unicode characters like ✖ require a space after them
|
||||
# otherwise the following character may overlap with the unicode character
|
||||
# tweaked for low resolution and non-retina screens
|
||||
|
||||
override_git_prompt_colors() {
|
||||
GIT_PROMPT_THEME_NAME="Evermeet_Lowres"
|
||||
|
||||
GIT_PROMPT_PREFIX="" # start of the git info string
|
||||
GIT_PROMPT_SUFFIX="" # the end of the git info string
|
||||
GIT_PROMPT_SEPARATOR="|" # separates each item
|
||||
|
||||
GIT_PROMPT_BRANCH="${Magenta}" # the git branch that is active in the current directory
|
||||
GIT_PROMPT_STAGED="${Cyan}●" # the number of staged files/directories
|
||||
GIT_PROMPT_CONFLICTS="${BoldRed}✖ " # the number of files in conflict
|
||||
GIT_PROMPT_CHANGED="${Cyan}✚ " # the number of changed files
|
||||
|
||||
GIT_PROMPT_UNTRACKED="${Cyan}…" # the number of untracked files/dirs
|
||||
GIT_PROMPT_STASHED="${Magenta}⚑" # the number of stashed files/dir
|
||||
GIT_PROMPT_CLEAN="${BoldGreen}✔" # a colored flag indicating a "clean" repo
|
||||
|
||||
GIT_PROMPT_UPSTREAM=" {${Magenta}_UPSTREAM_${ResetColor}}"
|
||||
|
||||
GIT_PROMPT_START_USER="[${BoldGreen}\u@\h${ResetColor} ${BoldYellow}\${?}${ResetColor} ${BoldBlue}\w${ResetColor}"
|
||||
GIT_PROMPT_START_ROOT="[${BoldRed}\u@\h${ResetColor} ${BoldYellow}\${?}${ResetColor} ${BoldBlue}\w${ResetColor}"
|
||||
GIT_PROMPT_END_USER="]$ "
|
||||
GIT_PROMPT_END_ROOT="]# "
|
||||
|
||||
GIT_PROMPT_SYMBOLS_NO_REMOTE_TRACKING="⭑ " # This symbol is written after the branch, if the branch is not tracked
|
||||
}
|
||||
|
||||
reload_git_prompt_colors "Evermeet_Lowres"
|
||||
@@ -0,0 +1,32 @@
|
||||
# This theme for gitprompt.sh is designed for dark color schemes
|
||||
# On lowres screens unicode characters like ✖ require a space after them
|
||||
# otherwise the following character may overlap with the unicode character
|
||||
# tweaked for Ubuntu terminal fonts
|
||||
|
||||
override_git_prompt_colors() {
|
||||
GIT_PROMPT_THEME_NAME="Evermeet_Ubuntu"
|
||||
|
||||
GIT_PROMPT_PREFIX="" # start of the git info string
|
||||
GIT_PROMPT_SUFFIX="" # the end of the git info string
|
||||
GIT_PROMPT_SEPARATOR="|" # separates each item
|
||||
|
||||
GIT_PROMPT_BRANCH="${Magenta}" # the git branch that is active in the current directory
|
||||
GIT_PROMPT_STAGED="${Cyan}● " # the number of staged files/directories
|
||||
GIT_PROMPT_CONFLICTS="${BoldRed}✖ " # the number of files in conflict
|
||||
GIT_PROMPT_CHANGED="${Cyan}✚ " # the number of changed files
|
||||
|
||||
GIT_PROMPT_UNTRACKED="${Cyan}…" # the number of untracked files/dirs
|
||||
GIT_PROMPT_STASHED="${Magenta}⚑ " # the number of stashed files/dir
|
||||
GIT_PROMPT_CLEAN="${BoldGreen}✔ " # a colored flag indicating a "clean" repo
|
||||
|
||||
GIT_PROMPT_UPSTREAM=" {${Magenta}_UPSTREAM_${ResetColor}}"
|
||||
|
||||
GIT_PROMPT_START_USER="[${BoldGreen}\u@\h${ResetColor} ${BoldYellow}\${?}${ResetColor} ${BoldBlue}\w${ResetColor}"
|
||||
GIT_PROMPT_START_ROOT="[${BoldRed}\u@\h${ResetColor} ${BoldYellow}\${?}${ResetColor} ${BoldBlue}\w${ResetColor}"
|
||||
GIT_PROMPT_END_USER="]$ "
|
||||
GIT_PROMPT_END_ROOT="]# "
|
||||
|
||||
GIT_PROMPT_SYMBOLS_NO_REMOTE_TRACKING="⭑ " # This symbol is written after the branch, if the branch is not tracked
|
||||
}
|
||||
|
||||
reload_git_prompt_colors "Evermeet_Ubuntu"
|
||||
@@ -0,0 +1,24 @@
|
||||
override_git_prompt_colors() {
|
||||
GIT_PROMPT_THEME_NAME="Georgi"
|
||||
|
||||
GIT_PROMPT_PREFIX="${BoldCyan}("
|
||||
GIT_PROMPT_SUFFIX="${BoldCyan})"
|
||||
GIT_PROMPT_BRANCH="${BoldCyan}"
|
||||
GIT_PROMPT_SEPARATOR="${BoldCyan}|"
|
||||
|
||||
GIT_PROMPT_CHANGED="${BoldRed}+"
|
||||
GIT_PROMPT_UNTRACKED="${BoldRed}…"
|
||||
GIT_PROMPT_STAGED="${BoldGreen}●"
|
||||
GIT_PROMPT_STASHED="${BoldCyan}⚑"
|
||||
GIT_PROMPT_CONFLICTS="${BoldRed}✖"
|
||||
GIT_PROMPT_CLEAN="${BoldCyan}✔"
|
||||
|
||||
GIT_PROMPT_SYMBOLS_AHEAD="${BoldBlack}↑"
|
||||
GIT_PROMPT_SYMBOLS_BEHIND="${BoldMagenta}↓"
|
||||
GIT_PROMPT_SYMBOLS_PREHASH="${BoldRed}:"
|
||||
|
||||
GIT_PROMPT_SYMBOLS_NO_REMOTE_TRACKING=" "
|
||||
GIT_PROMPT_REMOTE=""
|
||||
}
|
||||
|
||||
reload_git_prompt_colors "Georgi"
|
||||
@@ -0,0 +1,61 @@
|
||||
##############################################################################
|
||||
# Changes the prompt to a Debian-style one that truncates pwd to a max length
|
||||
# depending on the terminal column width. Also uses the prompt_callback
|
||||
# function of bash-git-prompt to set the window title to almost the same
|
||||
# Debian-style. This version has been tweaked for Ubuntu standard terminal
|
||||
# fonts.
|
||||
#
|
||||
# The prompt will use a Debian-style on the form
|
||||
#
|
||||
# relative-path-from-git-toplevel-dir bash-git-prompt-info <exit status>
|
||||
# HH:MM:SS ▶
|
||||
#
|
||||
# The window title will have the form
|
||||
# relative-path-from-git-toplevel-dir
|
||||
#
|
||||
# Example usage:
|
||||
# if [ -f ~/.bash-git-prompt/gitprompt.sh ]; then
|
||||
# GIT_PROMPT_THEME=Minimal
|
||||
# source ~/.bash-git-prompt/gitprompt.sh
|
||||
# fi
|
||||
#
|
||||
# Imbibinebe <imbibinebe@gmail.com> [https://github.com/imbibinebe]
|
||||
##############################################################################
|
||||
override_git_prompt_colors() {
|
||||
GIT_PROMPT_THEME_NAME="Minimal"
|
||||
|
||||
#Overrides the prompt_callback function used by bash-git-prompt
|
||||
function prompt_callback {
|
||||
GIT_CONTAINER_FOLDER_FULLPATH=$(git rev-parse --show-toplevel 2> /dev/null)
|
||||
GIT_CONTAINER_FOLDER=$(basename $GIT_CONTAINER_FOLDER_FULLPATH 2> /dev/null)
|
||||
CURRENT_FULLPATH=$(pwd)
|
||||
local PS1=$GIT_CONTAINER_FOLDER${CURRENT_FULLPATH#$GIT_CONTAINER_FOLDER_FULLPATH}
|
||||
gp_set_window_title "$PS1"
|
||||
echo -n "${BoldYellow}${PS1}${ResetColor}"
|
||||
}
|
||||
|
||||
Time12a="\$(date +%H:%M:%S)"
|
||||
GIT_PROMPT_BRANCH="${BoldMagenta}" # the git branch that is active in the current directory
|
||||
GIT_PROMPT_PREFIX="" # start of the git info string
|
||||
GIT_PROMPT_SUFFIX="" # the end of the git info string
|
||||
GIT_PROMPT_SEPARATOR="" # separates each item
|
||||
GIT_PROMPT_STAGED=" ${Green}●" # the number of staged files/directories
|
||||
GIT_PROMPT_CONFLICTS=" ${BoldRed}✖" # the number of files in conflict
|
||||
GIT_PROMPT_CHANGED=" ${BoldBlue}✚" # the number of changed files
|
||||
|
||||
# GIT_PROMPT_REMOTE=" " # the remote branch name (if any) and the symbols for ahead and behind
|
||||
GIT_PROMPT_UNTRACKED=" ${Cyan}…" # the number of untracked files/dirs
|
||||
GIT_PROMPT_STASHED=" ${BoldCyan}⚑" # the number of stashed files/dir
|
||||
GIT_PROMPT_CLEAN=" ${BoldGreen}✔" # a colored flag indicating a "clean" repo
|
||||
|
||||
local gp_end="_LAST_COMMAND_INDICATOR_\n${White}${Time12a}${ResetColor}"
|
||||
|
||||
GIT_PROMPT_START_USER=""
|
||||
GIT_PROMPT_END_USER="${gp_end} ▶ "
|
||||
GIT_PROMPT_END_ROOT="${gp_end} /!!!\ "
|
||||
|
||||
GIT_PROMPT_COMMAND_OK="${Green} ✔ " # indicator if the last command returned with an exit code of 0
|
||||
GIT_PROMPT_COMMAND_FAIL="${BoldRed} ✘-_LAST_COMMAND_STATE_" # indicator if the last command returned with an exit code of other than 0
|
||||
}
|
||||
|
||||
reload_git_prompt_colors "Minimal"
|
||||
@@ -0,0 +1,41 @@
|
||||
# Plague Doctor's bash-git-prompt theme.
|
||||
#
|
||||
# Note 1: The theme is designed to work only in GIT Repos.
|
||||
# If one needs a coresponding prompt for non GIT locations, here is the code:
|
||||
#
|
||||
# if [ -f <path-to-prompt-colors.sh> ]; then
|
||||
# source <path-to-prompt-colors.sh>
|
||||
# MYPROMPT="${White}\A${ResetColor} ${BoldGreen}\\u${White}@${BoldYellow}\\h ${Cyan}\w${ResetColor}${BoldWhite} $ ${ResetColor}"
|
||||
# else
|
||||
# MYPROMPT="\[\033[37m\]\A \[\033[1m\]\[\033[32m\]\u\[\033[0m\]\[\033[37m\]@\[\033[1m\]\[\033[33m\]\h:\[\033[0m\]\[\033[36m\] \w\[\033[0m\]\[\033[1m\]\[\033[37m\] \$ \[\033[0m\]"
|
||||
# fi
|
||||
# export PS1=$MYPROMPT
|
||||
#
|
||||
# Note 2: The theme looks very nice with "FantasqueSansMono Nerd Font" https://github.com/ryanoasis/nerd-fonts
|
||||
|
||||
override_git_prompt_colors() {
|
||||
GIT_PROMPT_THEME_NAME="Plague Doctor"
|
||||
GIT_PROMPT_ONLY_IN_REPO=1
|
||||
GIT_PROMPT_LEADING_SPACE=0
|
||||
|
||||
GIT_PROMPT_PREFIX="[ "
|
||||
GIT_PROMPT_SUFFIX=" ]"
|
||||
GIT_PROMPT_SEPARATOR=" |"
|
||||
GIT_PROMPT_STAGED=" ${Red}● ${ResetColor}"
|
||||
GIT_PROMPT_CONFLICTS=" ${Red}✖ ${ResetColor}"
|
||||
GIT_PROMPT_CHANGED=" ${Blue}✚ ${ResetColor}"
|
||||
GIT_PROMPT_UNTRACKED=" ${Cyan}…${ResetColor}"
|
||||
GIT_PROMPT_STASHED=" ${BoldBlue}⚑ ${ResetColor}"
|
||||
GIT_PROMPT_CLEAN=" ${BoldGreen}✔ ${ResetColor}"
|
||||
GIT_PROMPT_SYMBOLS_NO_REMOTE_TRACKING="✭"
|
||||
|
||||
GIT_PROMPT_COMMAND_OK="${Green}✔ "
|
||||
GIT_PROMPT_COMMAND_FAIL="${Red}✘ "
|
||||
|
||||
GIT_PROMPT_START_USER="${BoldBlue} ${ResetColor}"
|
||||
GIT_PROMPT_START_ROOT="${BoldRed}❖ ${ResetColor}"
|
||||
GIT_PROMPT_END_USER="\n_LAST_COMMAND_INDICATOR_${White}${Time12a}${ResetColor} ${BoldGreen}\\u${White}@${BoldYellow}\\h ${Cyan}${PathShort}${ResetColor}${BoldWhite} $ ${ResetColor}"
|
||||
GIT_PROMPT_END_ROOT="\n_LAST_COMMAND_INDICATOR_${White}${Time12a}${ResetColor} ${BoldRed}\\u${White}@${BoldYellow}\\h ${Cyan}${PathShort}${ResetColor}${BoldRed} # ${ResetColor}"
|
||||
}
|
||||
|
||||
reload_git_prompt_colors "Plague Doctor"
|
||||
@@ -0,0 +1,11 @@
|
||||
# This is an alternative approach. Single line in git repo.
|
||||
override_git_prompt_colors() {
|
||||
GIT_PROMPT_THEME_NAME="Single_line"
|
||||
|
||||
GIT_PROMPT_START_USER="_LAST_COMMAND_INDICATOR_ ${White}${Time12a}${ResetColor} ${BoldYellow}${PathShort}${ResetColor}"
|
||||
GIT_PROMPT_END_USER="${ResetColor} $ "
|
||||
GIT_PROMPT_END_ROOT="${BoldRed} # "
|
||||
}
|
||||
|
||||
reload_git_prompt_colors "Single_line"
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
# This is an alternative approach. Single line in git repo.
|
||||
override_git_prompt_colors() {
|
||||
GIT_PROMPT_THEME_NAME="Single_line_NoExitState"
|
||||
|
||||
GIT_PROMPT_COMMAND_FAIL="${Red}✘"
|
||||
GIT_PROMPT_START_USER="_LAST_COMMAND_INDICATOR_ ${White}${Time12a}${ResetColor} ${BoldYellow}${PathShort}${ResetColor}"
|
||||
GIT_PROMPT_END_USER="${ResetColor} $ "
|
||||
GIT_PROMPT_END_ROOT="${BoldRed} # "
|
||||
}
|
||||
|
||||
reload_git_prompt_colors "Single_line_NoExitState"
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
# This is a theme for gitprompt.sh,
|
||||
# it uses the default openSUSE bash prompt style
|
||||
|
||||
override_git_prompt_colors() {
|
||||
GIT_PROMPT_THEME_NAME="Single_line_NoExitState_openSUSE"
|
||||
GIT_PROMPT_BRANCH="${Cyan}"
|
||||
GIT_PROMPT_UNTRACKED=" ${Cyan}…${ResetColor}"
|
||||
GIT_PROMPT_CHANGED="${Yellow}✚ "
|
||||
GIT_PROMPT_STAGED="${Magenta}●"
|
||||
|
||||
GIT_PROMPT_START_USER="\u@\h:\w"
|
||||
GIT_PROMPT_START_ROOT="${BoldRed}\h:\w"
|
||||
|
||||
GIT_PROMPT_END_USER="> "
|
||||
GIT_PROMPT_END_ROOT=" # ${ResetColor}"
|
||||
}
|
||||
|
||||
reload_git_prompt_colors "Single_line_NoExitState_openSUSE"
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
# This is an alternative approach. Single line in git repo.
|
||||
# Theme optimised for Terminus and PowerLine compatible fonts.
|
||||
# This theme for gitprompt.sh is optimized for the "Solarized Dark" and "Solarized Light" color schemes
|
||||
# without the indicator of the last command state
|
||||
# tweaked for Ubuntu terminal fonts
|
||||
|
||||
define_helpers() {
|
||||
PathShort="${BoldBlue}\u:${Cyan}\W"
|
||||
}
|
||||
|
||||
override_git_prompt_colors() {
|
||||
GIT_PROMPT_THEME_NAME="Single_line_Solarized"
|
||||
|
||||
|
||||
GIT_PROMPT_PREFIX="[ "
|
||||
GIT_PROMPT_SUFFIX=" ]"
|
||||
GIT_PROMPT_SEPARATOR=" |"
|
||||
GIT_PROMPT_STAGED=" ${Yellow}● ${ResetColor}"
|
||||
GIT_PROMPT_CONFLICTS=" ${Red}✖ ${ResetColor}"
|
||||
GIT_PROMPT_CHANGED=" ${Blue}✚ ${ResetColor}"
|
||||
GIT_PROMPT_UNTRACKED=" ${Cyan}…${ResetColor}"
|
||||
GIT_PROMPT_STASHED=" ${BoldMagenta}⚑ ${ResetColor}"
|
||||
GIT_PROMPT_CLEAN=" ${Green}✔ ${ResetColor}"
|
||||
|
||||
GIT_PROMPT_COMMAND_FAIL="${Red}✘"
|
||||
|
||||
GIT_PROMPT_START_USER="_LAST_COMMAND_INDICATOR_ ${Yellow}${PathShort}${ResetColor}"
|
||||
GIT_PROMPT_END_USER="${BoldBlue} ➭ ${ResetColor}"
|
||||
GIT_PROMPT_END_ROOT="${BoldRed} # "
|
||||
|
||||
GIT_PROMPT_SYMBOLS_NO_REMOTE_TRACKING="✭"
|
||||
}
|
||||
|
||||
reload_git_prompt_colors "Single_line_Solarized"
|
||||
@@ -0,0 +1,25 @@
|
||||
# This is an alternative approach. Single line in git repo.
|
||||
override_git_prompt_colors() {
|
||||
GIT_PROMPT_THEME_NAME="Single_line_Ubuntu"
|
||||
|
||||
GIT_PROMPT_PREFIX="[ "
|
||||
GIT_PROMPT_SUFFIX=" ]"
|
||||
GIT_PROMPT_SEPARATOR=" |"
|
||||
GIT_PROMPT_STAGED=" ${Red}● ${ResetColor}"
|
||||
GIT_PROMPT_CONFLICTS=" ${Red}✖ ${ResetColor}"
|
||||
GIT_PROMPT_CHANGED=" ${Blue}✚ ${ResetColor}"
|
||||
GIT_PROMPT_UNTRACKED=" ${Cyan}…${ResetColor}"
|
||||
GIT_PROMPT_STASHED=" ${BoldBlue}⚑ ${ResetColor}"
|
||||
GIT_PROMPT_CLEAN=" ${BoldGreen}✔ ${ResetColor}"
|
||||
|
||||
GIT_PROMPT_COMMAND_OK="${Green}✔ "
|
||||
GIT_PROMPT_COMMAND_FAIL="${Red}✘ "
|
||||
|
||||
GIT_PROMPT_START_USER="_LAST_COMMAND_INDICATOR_ ${White}${Time12a}${ResetColor} ${Cyan}${PathShort}${ResetColor}"
|
||||
GIT_PROMPT_END_USER="${ResetColor} $ "
|
||||
GIT_PROMPT_END_ROOT="${BoldRed} # "
|
||||
|
||||
}
|
||||
|
||||
reload_git_prompt_colors "Single_line_Ubuntu"
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
# This is a theme for gitprompt.sh,
|
||||
# it uses the default openSUSE bash prompt style with exit status
|
||||
|
||||
override_git_prompt_colors() {
|
||||
GIT_PROMPT_THEME_NAME="Single_line_openSUSE"
|
||||
GIT_PROMPT_BRANCH="${Cyan}"
|
||||
GIT_PROMPT_UNTRACKED=" ${Cyan}…${ResetColor}"
|
||||
GIT_PROMPT_CHANGED="${Yellow}✚ "
|
||||
GIT_PROMPT_STAGED="${Magenta}●"
|
||||
|
||||
GIT_PROMPT_START_USER="_LAST_COMMAND_INDICATOR_ ${ResetColor}\u@\h:\w"
|
||||
GIT_PROMPT_START_ROOT="_LAST_COMMAND_INDICATOR_ ${BoldRed}\h:\w"
|
||||
|
||||
GIT_PROMPT_END_USER="${ResetColor}> "
|
||||
GIT_PROMPT_END_ROOT=" # ${ResetColor}"
|
||||
}
|
||||
|
||||
reload_git_prompt_colors "Single_line_openSUSE"
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
# This theme for gitprompt.sh is optimized for the "Solarized Dark" and "Solarized Light" color schemes
|
||||
# tweaked for Ubuntu terminal fonts
|
||||
|
||||
override_git_prompt_colors() {
|
||||
GIT_PROMPT_THEME_NAME="Solarized"
|
||||
GIT_PROMPT_STAGED="${Yellow}●"
|
||||
GIT_PROMPT_STASHED="${BoldMagenta}⚑ "
|
||||
GIT_PROMPT_CLEAN="${Green}✔"
|
||||
GIT_PROMPT_END_USER=" \n${BoldBlue}${Time12a}${ResetColor} $ "
|
||||
GIT_PROMPT_END_ROOT=" \n${BoldBlue}${Time12a}${ResetColor} # "
|
||||
}
|
||||
|
||||
reload_git_prompt_colors "Solarized"
|
||||
@@ -0,0 +1,41 @@
|
||||
# This theme for gitprompt.sh is optimized for the "Solarized Dark" and "Solarized Light" color schemes
|
||||
# tweaked for Ubuntu terminal fonts
|
||||
# some modifications on colors
|
||||
# added ruby prompt, and kernel version as well
|
||||
|
||||
override_git_prompt_colors() {
|
||||
if [ -e ~/.rvm/bin/rvm-prompt ]; then
|
||||
RUBY_PROMPT='{$(~/.rvm/bin/rvm-prompt i v)}'
|
||||
else
|
||||
if command -v rbenv > /dev/null; then
|
||||
RUBY_PROMPT='{$(rbenv version | sed -e "s/ (set.*$//")}'
|
||||
fi
|
||||
fi
|
||||
Time12a="\$(date +%H:%M:%S)"
|
||||
|
||||
GIT_PROMPT_THEME_NAME="Solarized Extravagant"
|
||||
GIT_PROMPT_STAGED="${Yellow}● "
|
||||
GIT_PROMPT_UNTRACKED="${Cyan}… "
|
||||
GIT_PROMPT_STASHED="${BoldMagenta}⚑ "
|
||||
GIT_PROMPT_CLEAN="${Green}✔ "
|
||||
GIT_PROMPT_COMMAND_OK="${Green}✔ "
|
||||
GIT_PROMPT_COMMAND_FAIL="${Red}✘ "
|
||||
|
||||
KERNEL_PROMPT='‹$(uname -r)›'
|
||||
|
||||
GIT_PROMPT_START_USER="_LAST_COMMAND_INDICATOR_ ${BoldBlueFg}${Time12a} ${Green}${KERNEL_PROMPT} ${Cyan}${RUBY_PROMPT} ${Yellow}${PathShort}"
|
||||
GIT_PROMPT_START_ROOT="${GIT_PROMPT_START_USER}"
|
||||
if [ -n "$SSH_CLIENT" ]; then
|
||||
GIT_PROMPT_END_USER="\n${BoldRed} ➤ ${ResetColor}"
|
||||
GIT_PROMPT_END_ROOT="\n${BoldRed} » ${ResetColor}"
|
||||
else
|
||||
GIT_PROMPT_END_USER="\n${BoldBlue} ➭ ${ResetColor}"
|
||||
GIT_PROMPT_END_ROOT="\n${BoldRed} # ${ResetColor}"
|
||||
fi
|
||||
GIT_PROMPT_LEADING_SPACE=1
|
||||
GIT_PROMPT_PREFIX="${Cyan}["
|
||||
GIT_PROMPT_SUFFIX="${Cyan}]"
|
||||
GIT_PROMPT_SYMBOLS_NO_REMOTE_TRACKING="✭"
|
||||
}
|
||||
|
||||
reload_git_prompt_colors "Solarized Extravagant"
|
||||
@@ -0,0 +1,16 @@
|
||||
# This theme for gitprompt.sh is optimized for the "Solarized Dark" and "Solarized Light" color schemes
|
||||
# without the indicator of the last command state
|
||||
|
||||
override_git_prompt_colors() {
|
||||
GIT_PROMPT_THEME_NAME="Solarized NoExitState"
|
||||
GIT_PROMPT_STAGED="${Yellow}●"
|
||||
GIT_PROMPT_STASHED="${BoldMagenta}⚑ "
|
||||
GIT_PROMPT_CLEAN="${Green}✔"
|
||||
GIT_PROMPT_COMMAND_FAIL="${Red}✘"
|
||||
GIT_PROMPT_START_USER="${Yellow}${PathShort}${ResetColor}"
|
||||
GIT_PROMPT_START_ROOT="${GIT_PROMPT_START_USER}"
|
||||
GIT_PROMPT_END_USER=" \n${BoldBlue}${Time12a}${ResetColor} $ "
|
||||
GIT_PROMPT_END_ROOT=" \n${BoldBlue}${Time12a}${ResetColor} # "
|
||||
}
|
||||
|
||||
reload_git_prompt_colors "Solarized NoExitState"
|
||||
@@ -0,0 +1,18 @@
|
||||
# This theme for gitprompt.sh is optimized for the "Solarized Dark" and "Solarized Light" color schemes
|
||||
# without the indicator of the last command state
|
||||
# tweaked for Ubuntu terminal fonts
|
||||
|
||||
override_git_prompt_colors() {
|
||||
GIT_PROMPT_THEME_NAME="Solarized NoExitState Ubuntu"
|
||||
GIT_PROMPT_STAGED="${Yellow}● "
|
||||
GIT_PROMPT_STASHED="${BoldMagenta}⚑ "
|
||||
GIT_PROMPT_CLEAN="${Green}✔ "
|
||||
GIT_PROMPT_COMMAND_OK="${Green}✔ "
|
||||
GIT_PROMPT_COMMAND_FAIL="${Red}✘ "
|
||||
GIT_PROMPT_START_USER="${Yellow}${PathShort}${ResetColor}"
|
||||
GIT_PROMPT_START_ROOT="${GIT_PROMPT_START_USER}"
|
||||
GIT_PROMPT_END_USER=" \n${BoldBlue}${Time12a}${ResetColor} $ "
|
||||
GIT_PROMPT_END_ROOT=" \n${BoldBlue}${Time12a}${ResetColor} # "
|
||||
}
|
||||
|
||||
reload_git_prompt_colors "Solarized NoExitState Ubuntu"
|
||||
@@ -0,0 +1,14 @@
|
||||
# This theme for gitprompt.sh is optimized for the "Solarized Dark" and "Solarized Light" color schemes
|
||||
# tweaked for Ubuntu terminal fonts
|
||||
|
||||
override_git_prompt_colors() {
|
||||
GIT_PROMPT_THEME_NAME="Solarized Ubuntu"
|
||||
GIT_PROMPT_STAGED="${Yellow}● "
|
||||
GIT_PROMPT_STASHED="${BoldMagenta}⚑ "
|
||||
GIT_PROMPT_CLEAN="${Green}✔ "
|
||||
GIT_PROMPT_COMMAND_OK="${Green}✔ "
|
||||
GIT_PROMPT_END_USER=" \n${BoldBlue}${Time12a}${ResetColor} $ "
|
||||
GIT_PROMPT_END_ROOT=" \n${BoldBlue}${Time12a}${ResetColor} # "
|
||||
}
|
||||
|
||||
reload_git_prompt_colors "Solarized Ubuntu"
|
||||
@@ -0,0 +1,23 @@
|
||||
# This theme for gitprompt.sh is optimized for the "Solarized Dark" and "Solarized Light" color schemes
|
||||
# based on "Solarized Extravagant", with user@host on the second line and some things removed.
|
||||
|
||||
function override_git_prompt_colors() {
|
||||
GIT_PROMPT_THEME_NAME='Solarized UserHost'
|
||||
GIT_PROMPT_STAGED="${Yellow}● "
|
||||
GIT_PROMPT_UNTRACKED="${Cyan}… "
|
||||
GIT_PROMPT_STASHED="${BoldMagenta}⚑ "
|
||||
GIT_PROMPT_CLEAN="${Green}✔ "
|
||||
GIT_PROMPT_COMMAND_OK="${Green}✔ "
|
||||
GIT_PROMPT_COMMAND_FAIL="${Red}✘ "
|
||||
|
||||
GIT_PROMPT_START_USER="_LAST_COMMAND_INDICATOR_ ${Yellow}${PathShort}"
|
||||
GIT_PROMPT_START_ROOT="${GIT_PROMPT_START_USER}"
|
||||
GIT_PROMPT_END_USER="\n${Blue}\\u${White}@${BoldBlue}\\h ${BoldRed} ➤ ${ResetColor} "
|
||||
GIT_PROMPT_END_ROOT="\n${Blue}\\u${White}@${BoldBlue}\\h ${BoldRed} #️ ${ResetColor} "
|
||||
GIT_PROMPT_LEADING_SPACE=1
|
||||
GIT_PROMPT_PREFIX="${Cyan}["
|
||||
GIT_PROMPT_SUFFIX="${Cyan}]"
|
||||
GIT_PROMPT_SYMBOLS_NO_REMOTE_TRACKING="✭"
|
||||
}
|
||||
|
||||
reload_git_prompt_colors 'Solarized UserHost'
|
||||
@@ -0,0 +1,40 @@
|
||||
##############################################################################
|
||||
# Changes the prompt to a Debian-style one that truncates pwd to a max length
|
||||
# depending on the terminal column width. Also uses the prompt_callback
|
||||
# function of bash-git-prompt to set the window title to almost the same
|
||||
# Debian-style.
|
||||
#
|
||||
# The prompt will use a Debian-style on the form
|
||||
#
|
||||
# [user@host: <truncated PWD>] [bash-git-prompt-info] <exit status>
|
||||
# HH:MM $
|
||||
#
|
||||
# The window title will have the form
|
||||
# user@host: <truncated PWD>
|
||||
#
|
||||
# Example usage:
|
||||
# if [ -f ~/.bash-git-prompt/gitprompt.sh ]; then
|
||||
# GIT_PROMPT_THEME=TruncatedPwd_WindowTitle
|
||||
# source ~/.bash-git-prompt/gitprompt.sh
|
||||
# fi
|
||||
#
|
||||
# oGre <oGre@muppfarmen.se> [https://github.com/ogr3]
|
||||
##############################################################################
|
||||
override_git_prompt_colors() {
|
||||
GIT_PROMPT_THEME_NAME="TruncatedPwd_WindowTitle"
|
||||
|
||||
#Overrides the prompt_callback function used by bash-git-prompt
|
||||
function prompt_callback {
|
||||
local PS1="\u@\h: $(gp_truncate_pwd)"
|
||||
gp_set_window_title "$PS1"
|
||||
echo -n "${Yellow}[${PS1}]${ResetColor}"
|
||||
}
|
||||
|
||||
local gp_end=" _LAST_COMMAND_INDICATOR_\n${White}${Time12a}${ResetColor}"
|
||||
|
||||
GIT_PROMPT_START_USER=""
|
||||
GIT_PROMPT_END_USER="${gp_end} $ "
|
||||
GIT_PROMPT_END_ROOT="${gp_end} # "
|
||||
}
|
||||
|
||||
reload_git_prompt_colors "TruncatedPwd_WindowTitle"
|
||||
@@ -0,0 +1,40 @@
|
||||
##############################################################################
|
||||
# Changes the prompt to a Debian-style one that truncates pwd to a max length
|
||||
# depending on the terminal column width. Also uses the prompt_callback
|
||||
# function of bash-git-prompt to set the window title to almost the same
|
||||
# Debian-style.
|
||||
#
|
||||
# The prompt will use a Debian-style on the form
|
||||
#
|
||||
# [user@host: <truncated PWD>] [bash-git-prompt-info]
|
||||
# HH:MM $
|
||||
#
|
||||
# The window title will have the form
|
||||
# user@host: <truncated PWD>
|
||||
#
|
||||
# Example usage:
|
||||
# if [ -f ~/.bash-git-prompt/gitprompt.sh ]; then
|
||||
# GIT_PROMPT_THEME=TruncatedPwd_WindowTitle_NoExitState
|
||||
# source ~/.bash-git-prompt/gitprompt.sh
|
||||
# fi
|
||||
#
|
||||
# oGre <oGre@muppfarmen.se> [https://github.com/ogr3]
|
||||
##############################################################################
|
||||
override_git_prompt_colors() {
|
||||
GIT_PROMPT_THEME_NAME="TruncatedPwd_WindowTitle_NoExitState"
|
||||
|
||||
#Overrides the prompt_callback function used by bash-git-prompt
|
||||
function prompt_callback {
|
||||
local PS1="\u@\h: $(gp_truncate_pwd)"
|
||||
gp_set_window_title "$PS1"
|
||||
echo -n "${Yellow}[${PS1}]${ResetColor}"
|
||||
}
|
||||
|
||||
local gp_end=" _LAST_COMMAND_INDICATOR_\n${White}${Time12a}${ResetColor}"
|
||||
|
||||
GIT_PROMPT_START_USER=""
|
||||
GIT_PROMPT_END_USER="${gp_end} $ "
|
||||
GIT_PROMPT_END_ROOT="${gp_end} # "
|
||||
}
|
||||
|
||||
reload_git_prompt_colors "TruncatedPwd_WindowTitle_NoExitState"
|
||||
@@ -0,0 +1,46 @@
|
||||
##############################################################################
|
||||
# Changes the prompt to a Debian-style one that truncates pwd to a max length
|
||||
# depending on the terminal column width. Also uses the prompt_callback
|
||||
# function of bash-git-prompt to set the window title to almost the same
|
||||
# Debian-style. This version has been tweaked for Ubuntu standard terminal
|
||||
# fonts.
|
||||
#
|
||||
# The prompt will use a Debian-style on the form
|
||||
#
|
||||
# [user@host: <truncated PWD>] [bash-git-prompt-info]
|
||||
# HH:MM $
|
||||
#
|
||||
# The window title will have the form
|
||||
# user@host: <truncated PWD>
|
||||
#
|
||||
# Example usage:
|
||||
# if [ -f ~/.bash-git-prompt/gitprompt.sh ]; then
|
||||
# GIT_PROMPT_THEME=TruncatedPwd_WindowTitle_NoExitState_Ubuntu
|
||||
# source ~/.bash-git-prompt/gitprompt.sh
|
||||
# fi
|
||||
#
|
||||
# oGre <oGre@muppfarmen.se> [https://github.com/ogr3]
|
||||
##############################################################################
|
||||
override_git_prompt_colors() {
|
||||
GIT_PROMPT_THEME_NAME="TruncatedPwd_WindowTitle_NoExitState_Ubuntu"
|
||||
|
||||
#Overrides the prompt_callback function used by bash-git-prompt
|
||||
function prompt_callback {
|
||||
local PS1="\u@\h: $(gp_truncate_pwd)"
|
||||
gp_set_window_title "$PS1"
|
||||
echo -n "${Yellow}[${PS1}]${ResetColor}"
|
||||
}
|
||||
|
||||
local gp_end=" _LAST_COMMAND_INDICATOR_\n${White}${Time12a}${ResetColor}"
|
||||
|
||||
GIT_PROMPT_START_USER=""
|
||||
GIT_PROMPT_END_USER="${gp_end} $ "
|
||||
GIT_PROMPT_END_ROOT="${gp_end} # "
|
||||
|
||||
GIT_PROMPT_STAGED="${Red}● " # the number of staged files/directories
|
||||
GIT_PROMPT_CLEAN="${BoldGreen}✔ " # a colored flag indicating a "clean" repo
|
||||
GIT_PROMPT_COMMAND_OK="${Green}✔ " # indicator if the last command returned with an exit code of 0
|
||||
GIT_PROMPT_COMMAND_FAIL="${Red}✘ " # indicator if the last command returned with an exit code of other than 0
|
||||
}
|
||||
|
||||
reload_git_prompt_colors "TruncatedPwd_WindowTitle_NoExitState_Ubuntu"
|
||||
@@ -0,0 +1,45 @@
|
||||
##############################################################################
|
||||
# Changes the prompt to a Debian-style one that truncates pwd to a max length
|
||||
# depending on the terminal column width. Also uses the prompt_callback
|
||||
# function of bash-git-prompt to set the window title to almost the same
|
||||
# Debian-style. This version has been tweaked for Ubuntu standard terminal
|
||||
# fonts.
|
||||
#
|
||||
# The prompt will use a Debian-style on the form
|
||||
#
|
||||
# [user@host: <truncated PWD>] [bash-git-prompt-info] <exit status>
|
||||
# HH:MM $
|
||||
#
|
||||
# The window title will have the form
|
||||
# user@host: <truncated PWD>
|
||||
#
|
||||
# Example usage:
|
||||
# if [ -f ~/.bash-git-prompt/gitprompt.sh ]; then
|
||||
# GIT_PROMPT_THEME=TruncatedPwd_WindowTitle_Ubuntu
|
||||
# source ~/.bash-git-prompt/gitprompt.sh
|
||||
# fi
|
||||
#
|
||||
# oGre <oGre@muppfarmen.se> [https://github.com/ogr3]
|
||||
##############################################################################
|
||||
override_git_prompt_colors() {
|
||||
GIT_PROMPT_THEME_NAME="TruncatedPwd_WindowTitle_Ubuntu"
|
||||
|
||||
#Overrides the prompt_callback function used by bash-git-prompt
|
||||
function prompt_callback {
|
||||
local PS1="\u@\h: $(gp_truncate_pwd)"
|
||||
gp_set_window_title "$PS1"
|
||||
echo -n "${Yellow}[${PS1}]${ResetColor}"
|
||||
}
|
||||
|
||||
local gp_end=" _LAST_COMMAND_INDICATOR_\n${White}${Time12a}${ResetColor}"
|
||||
|
||||
GIT_PROMPT_START_USER=""
|
||||
GIT_PROMPT_END_USER="${gp_end} $ "
|
||||
GIT_PROMPT_END_ROOT="${gp_end} # "
|
||||
|
||||
GIT_PROMPT_STAGED="${Red}● " # the number of staged files/directories
|
||||
GIT_PROMPT_CLEAN="${BoldGreen}✔ " # a colored flag indicating a "clean" repo
|
||||
GIT_PROMPT_COMMAND_OK="${Green}✔ " # indicator if the last command returned with an exit code of 0
|
||||
}
|
||||
|
||||
reload_git_prompt_colors "TruncatedPwd_WindowTitle_Ubuntu"
|
||||
@@ -1,683 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Espresso Soda</string>
|
||||
<key>settings</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#FFFFFF</string>
|
||||
<key>caret</key>
|
||||
<string>#000000</string>
|
||||
<key>foreground</key>
|
||||
<string>#000000</string>
|
||||
<key>invisibles</key>
|
||||
<string>#E0E0E0</string>
|
||||
<key>lineHighlight</key>
|
||||
<string>#A5A5A526</string>
|
||||
<key>selection</key>
|
||||
<string>#C2E8FF</string>
|
||||
<key>selectionBorder</key>
|
||||
<string>#AACBDF</string>
|
||||
<key>inactiveSelection</key>
|
||||
<string>#EDEDED</string>
|
||||
<key>findHighlight</key>
|
||||
<string>#FFE792</string>
|
||||
<key>findHighlightForeground</key>
|
||||
<string>#000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Comments</string>
|
||||
<key>scope</key>
|
||||
<string>comment, comment punctuation</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#ADADAD</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Comments: Preprocessor</string>
|
||||
<key>scope</key>
|
||||
<string>comment.block.preprocessor</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#ADADAD</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Comments: Documentation</string>
|
||||
<key>scope</key>
|
||||
<string>comment.documentation, comment.block.documentation</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#FFFDF7</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#BC670F</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Invalid - Deprecated</string>
|
||||
<key>scope</key>
|
||||
<string>invalid.deprecated</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#EFCFCF</string>
|
||||
<key>fontStyle</key>
|
||||
<string>italic underline</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Invalid - Illegal</string>
|
||||
<key>scope</key>
|
||||
<string>invalid.illegal</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#F93232</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#F9F2CE</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Operators</string>
|
||||
<key>scope</key>
|
||||
<string>keyword.operator</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#626FC9</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keywords</string>
|
||||
<key>scope</key>
|
||||
<string>keyword, storage</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#61862F</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Types</string>
|
||||
<key>scope</key>
|
||||
<string>storage.type, support.type</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#6700B9</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Language Constants</string>
|
||||
<key>scope</key>
|
||||
<string>constant.language, support.constant, variable.language</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#F3F2FF</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#7653C1</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variables</string>
|
||||
<key>scope</key>
|
||||
<string>variable, support.variable</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#4C8FC7</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variables: Punctuation</string>
|
||||
<key>scope</key>
|
||||
<string>variable punctuation</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#4C8FC7</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Functions</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.function, support.function, entity</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#61862F</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Classes</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.type, entity.other.inherited-class, support.class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#3A1D72</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Exceptions</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.exception</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#F93232</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Sections</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.section</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Numbers</string>
|
||||
<key>scope</key>
|
||||
<string>constant.numeric, constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#F3F2FF</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#7653C1</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Punctuation</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Strings</string>
|
||||
<key>scope</key>
|
||||
<string>constant.character, string</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#FBE9AD1A</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#BC670F</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Strings: Punctuation</string>
|
||||
<key>scope</key>
|
||||
<string>string punctuation</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#E69A4C</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Strings: Escape Sequences</string>
|
||||
<key>scope</key>
|
||||
<string>constant.character.escape</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#FBE9ADCC</string>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Strings: Regular Expressions</string>
|
||||
<key>scope</key>
|
||||
<string>string.regexp</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#699D36</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Strings: Symbols</string>
|
||||
<key>scope</key>
|
||||
<string>constant.other.symbol</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#E8FFD5</string>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Embedded Source</string>
|
||||
<key>scope</key>
|
||||
<string>string source, text source</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#434343</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>-----------------------------------</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>HTML: Doctype Declaration</string>
|
||||
<key>scope</key>
|
||||
<string>meta.tag.sgml.doctype</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#7F7F7F</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>HTML: Tags</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.tag</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#F4FAFF</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#2F6F9F</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>HTML: Attribute Punctuation</string>
|
||||
<key>scope</key>
|
||||
<string>meta.tag string punctuation</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#5FAFEF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>HTML: Tag Punctuation</string>
|
||||
<key>scope</key>
|
||||
<string>punctuation.definition.tag</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#4F9FCF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>HTML: Entities</string>
|
||||
<key>scope</key>
|
||||
<string>constant.character.entity</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>HTML: Attribute Names</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.attribute-name</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#4F9FCF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>HTML: Attribute Values</string>
|
||||
<key>scope</key>
|
||||
<string>meta.tag string.quoted, meta.tag string.quoted constant.character.entity</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#FFFFFF</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#D44950</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>-----------------------------------</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>CSS: Selectors</string>
|
||||
<key>scope</key>
|
||||
<string>meta.selector, meta.selector entity, meta.selector entity punctuation, entity.name.tag.css</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#3A77BF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>CSS: Property Names</string>
|
||||
<key>scope</key>
|
||||
<string>meta.property-name, support.type.property-name</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#D4430D</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>CSS: Property Values</string>
|
||||
<key>scope</key>
|
||||
<string>meta.property-value constant.numeric, meta.property-value constant, meta.property-value keyword</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#FFFFFF</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#43A202</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>-----------------------------------</string>
|
||||
<key>settings</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup: Changed</string>
|
||||
<key>scope</key>
|
||||
<string>markup.changed</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#FFFFDD</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup: Deletion</string>
|
||||
<key>scope</key>
|
||||
<string>markup.deleted</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#FFDDDD</string>
|
||||
<key>foreground</key>
|
||||
<string>#000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup: Emphasis</string>
|
||||
<key>scope</key>
|
||||
<string>markup.italic</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup: Error</string>
|
||||
<key>scope</key>
|
||||
<string>markup.error</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#F93232</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#F9F2CE</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup: Insertion</string>
|
||||
<key>scope</key>
|
||||
<string>markup.inserted</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#DDFFDD</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#000000</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup: Output</string>
|
||||
<key>scope</key>
|
||||
<string>markup.output, markup.raw</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#7F7F7F</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup: Prompt</string>
|
||||
<key>scope</key>
|
||||
<string>markup.prompt</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#555555</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup: Heading</string>
|
||||
<key>scope</key>
|
||||
<string>markup.heading</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup: Strong</string>
|
||||
<key>scope</key>
|
||||
<string>markup.bold</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>bold</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup: Traceback</string>
|
||||
<key>scope</key>
|
||||
<string>markup.traceback</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#F93232</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Markup: Underline</string>
|
||||
<key>scope</key>
|
||||
<string>markup.underline</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>underline</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>-----------------------------------</string>
|
||||
<key>settings</key>
|
||||
<dict/>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Extra: Diff Range</string>
|
||||
<key>scope</key>
|
||||
<string>meta.diff.range, meta.diff.index, meta.separator</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#EAF2F5</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#434343</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Extra: Diff From</string>
|
||||
<key>scope</key>
|
||||
<string>meta.diff.header.from-file</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#FFDDDD</string>
|
||||
<key>foreground</key>
|
||||
<string>#434343</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Extra: Diff To</string>
|
||||
<key>scope</key>
|
||||
<string>meta.diff.header.to-file</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#DDFFDD</string>
|
||||
<key>foreground</key>
|
||||
<string>#434343</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
<key>uuid</key>
|
||||
<string>BF4E1964-0DB9-4E88-8142-E8F52D7EDEEC</string>
|
||||
</dict>
|
||||
</plist>
|
||||
Binary file not shown.
@@ -1,351 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Monokai Soda</string>
|
||||
<key>settings</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#222222</string>
|
||||
<key>caret</key>
|
||||
<string>#F8F8F0</string>
|
||||
<key>foreground</key>
|
||||
<string>#F8F8F2</string>
|
||||
<key>invisibles</key>
|
||||
<string>#3B3A32</string>
|
||||
<key>lineHighlight</key>
|
||||
<string>#333333</string>
|
||||
<key>selection</key>
|
||||
<string>#444444</string>
|
||||
<key>findHighlight</key>
|
||||
<string>#FFE792</string>
|
||||
<key>findHighlightForeground</key>
|
||||
<string>#000000</string>
|
||||
<key>selectionBorder</key>
|
||||
<string>#1c1c1c</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Comment</string>
|
||||
<key>scope</key>
|
||||
<string>comment</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#75715E</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>String</string>
|
||||
<key>scope</key>
|
||||
<string>string</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#E6DB74</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Number</string>
|
||||
<key>scope</key>
|
||||
<string>constant.numeric</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#AE81FF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Built-in constant</string>
|
||||
<key>scope</key>
|
||||
<string>constant.language</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#AE81FF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>User-defined constant</string>
|
||||
<key>scope</key>
|
||||
<string>constant.character, constant.other</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#AE81FF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Variable</string>
|
||||
<key>scope</key>
|
||||
<string>variable</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Keyword</string>
|
||||
<key>scope</key>
|
||||
<string>keyword</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#F92672</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Storage</string>
|
||||
<key>scope</key>
|
||||
<string>storage</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#F92672</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Storage type</string>
|
||||
<key>scope</key>
|
||||
<string>storage.type</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#66D9EF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Class name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>underline</string>
|
||||
<key>foreground</key>
|
||||
<string>#A6E22E</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Inherited class</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.inherited-class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic underline</string>
|
||||
<key>foreground</key>
|
||||
<string>#A6E22E</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#A6E22E</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Function argument</string>
|
||||
<key>scope</key>
|
||||
<string>variable.parameter</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#FD971F</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Tag name</string>
|
||||
<key>scope</key>
|
||||
<string>entity.name.tag</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#F92672</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Tag attribute</string>
|
||||
<key>scope</key>
|
||||
<string>entity.other.attribute-name</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#A6E22E</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library function</string>
|
||||
<key>scope</key>
|
||||
<string>support.function</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#66D9EF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library constant</string>
|
||||
<key>scope</key>
|
||||
<string>support.constant</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#66D9EF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library class/type</string>
|
||||
<key>scope</key>
|
||||
<string>support.type, support.class</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string>italic</string>
|
||||
<key>foreground</key>
|
||||
<string>#66D9EF</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Library variable</string>
|
||||
<key>scope</key>
|
||||
<string>support.other.variable</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Invalid</string>
|
||||
<key>scope</key>
|
||||
<string>invalid</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#F92672</string>
|
||||
<key>fontStyle</key>
|
||||
<string></string>
|
||||
<key>foreground</key>
|
||||
<string>#F8F8F0</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>Invalid deprecated</string>
|
||||
<key>scope</key>
|
||||
<string>invalid.deprecated</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>background</key>
|
||||
<string>#AE81FF</string>
|
||||
<key>foreground</key>
|
||||
<string>#F8F8F0</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>JSON String</string>
|
||||
<key>scope</key>
|
||||
<string>meta.structure.dictionary.json string.quoted.double.json</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#CFCFC2</string>
|
||||
</dict>
|
||||
</dict>
|
||||
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>diff.header</string>
|
||||
<key>scope</key>
|
||||
<string>meta.diff, meta.diff.header</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#75715E</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>diff.deleted</string>
|
||||
<key>scope</key>
|
||||
<string>markup.deleted</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#F92672</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>diff.inserted</string>
|
||||
<key>scope</key>
|
||||
<string>markup.inserted</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#A6E22E</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>name</key>
|
||||
<string>diff.changed</string>
|
||||
<key>scope</key>
|
||||
<string>markup.changed</string>
|
||||
<key>settings</key>
|
||||
<dict>
|
||||
<key>foreground</key>
|
||||
<string>#E6DB74</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</array>
|
||||
<key>uuid</key>
|
||||
<string>5EAF4173-5DDE-4D64-A1E8-C1671C7EE339</string>
|
||||
</dict>
|
||||
</plist>
|
||||
Binary file not shown.
@@ -1 +0,0 @@
|
||||
Symlink this folder in Sublime's Packages/ folder
|
||||
@@ -1,10 +0,0 @@
|
||||
[
|
||||
{ "keys": ["ctrl+d"], "command": "run_macro_file", "args": {"file": "Packages/Default/Delete Line.sublime-macro"} },
|
||||
{ "keys": ["ctrl+shift+k"], "command": "find_under_expand" },
|
||||
|
||||
{ "keys": ["ctrl+shift+1"], "command": "open_related_rails_model" },
|
||||
{ "keys": ["ctrl+shift2"], "command": "open_related_rails_controller" },
|
||||
{ "keys": ["ctrl+shift3"], "command": "open_related_rails_view" },
|
||||
{ "keys": ["ctrl+shift4"], "command": "open_related_rspec_model" },
|
||||
{ "keys": ["ctrl+shift5"], "command": "open_related_rspec_controller" }
|
||||
]
|
||||
@@ -1,13 +1,23 @@
|
||||
[
|
||||
{ "keys": ["ctrl+tab"], "command": "next_view" },
|
||||
{ "keys": ["ctrl+shift+tab"], "command": "prev_view" },
|
||||
{ "keys": ["f11"], "command": "toggle_full_screen" },
|
||||
{ "keys": ["shift+f11"], "command": "toggle_distraction_free" },
|
||||
{ "keys": ["ctrl+d"], "command": "run_macro_file", "args": {"file": "Packages/Default/Delete Line.sublime-macro"} },
|
||||
{ "keys": ["ctrl+shift+k"], "command": "find_under_expand" },
|
||||
{ "keys": ["alt+shift+t"], "command": "delete_trailing_spaces" },
|
||||
{ "keys": ["ctrl+t"], "command": "new_file" },
|
||||
{ "keys": ["ctrl+w"], "command": "close" },
|
||||
{ "keys": ["ctrl+d"], "command": "run_macro_file", "args": {"file": "Packages/Default/Delete Line.sublime-macro"} },
|
||||
{ "keys": ["ctrl+shift+d"], "command": "duplicate_line" }
|
||||
{ "keys": ["alt+super+up"], "command": "swap_line_up" },
|
||||
{ "keys": ["alt+super+down"], "command": "swap_line_down" },
|
||||
{ "keys": ["ctrl+d", "ctrl+d"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Delete Line.sublime-macro"} },
|
||||
{ "keys": ["ctrl+d", "ctrl+shift+d"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Delete to Hard EOL.sublime-macro"} },
|
||||
{ "keys": ["ctrl+d", "ctrl+backspace"], "command": "run_macro_file", "args": {"file": "res://Packages/Default/Delete to Hard BOL.sublime-macro"} },
|
||||
{ "keys": ["ctrl+d", "ctrl+c"], "command": "show_at_center" },
|
||||
|
||||
{ "keys": ["ctrl+shift+k"], "command": "find_under_expand" },
|
||||
{ "keys": ["ctrl+shift+a"], "command": "find_all_under" },
|
||||
{ "keys": ["ctrl+tab"], "command": "next_view" },
|
||||
{ "keys": ["ctrl+shift+tab"], "command": "prev_view" },
|
||||
{ "keys": ["alt+super+left"], "command": "jump_back" },
|
||||
{ "keys": ["alt+super+right"], "command": "jump_forward" },
|
||||
|
||||
{ "keys": ["ctrl+a", "s"], "command": "new_pane" },
|
||||
{ "keys": ["ctrl+a", "x"], "command": "close_pane" },
|
||||
{ "keys": ["ctrl+a", "h"], "command": "focus_neighboring_group", "args": {"forward": false} },
|
||||
{ "keys": ["ctrl+a", "l"], "command": "focus_neighboring_group" },
|
||||
{ "keys": ["ctrl+a", "ctrl+h"], "command": "move_to_neighboring_group", "args": {"forward": false} },
|
||||
{ "keys": ["ctrl+a", "ctrl+l"], "command": "move_to_neighboring_group" },
|
||||
|
||||
]
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
[
|
||||
{ "keys": ["ctrl+d"], "command": "run_macro_file", "args": {"file": "Packages/Default/Delete Line.sublime-macro"} },
|
||||
{ "keys": ["ctrl+shift+k"], "command": "find_under_expand" }
|
||||
]
|
||||
@@ -1,19 +1,57 @@
|
||||
{
|
||||
"color_scheme": "Packages/Color Scheme - Default/Monokai.tmTheme",
|
||||
"bold_folder_labels": true,
|
||||
"ensure_newline_at_eof_on_save": true,
|
||||
"fallback_encoding": "Cyrillic (Windows 1251)",
|
||||
"font_size": 10.0,
|
||||
"file_exclude_patterns":
|
||||
[
|
||||
"*.map",
|
||||
"*.pyc",
|
||||
"*.pyo",
|
||||
"*.exe",
|
||||
"*.dll",
|
||||
"*.obj",
|
||||
"*.o",
|
||||
"*.a",
|
||||
"*.lib",
|
||||
"*.so",
|
||||
"*.dylib",
|
||||
"*.ncb",
|
||||
"*.sdf",
|
||||
"*.suo",
|
||||
"*.pdb",
|
||||
"*.idb",
|
||||
".DS_Store",
|
||||
"*.class",
|
||||
"*.psd",
|
||||
"*.db",
|
||||
"*.sublime-workspace",
|
||||
"*ng-all.min.js",
|
||||
"*lpall.js",
|
||||
"*.min.js"
|
||||
],
|
||||
"folder_exclude_patterns":
|
||||
[
|
||||
"generated/",
|
||||
"*landing*",
|
||||
".svn",
|
||||
".git",
|
||||
".hg",
|
||||
"CVS"
|
||||
],
|
||||
"font_face": "Monaco",
|
||||
"font_size": 13,
|
||||
"highlight_line": true,
|
||||
"highlight_modified_tabs": true,
|
||||
"ignored_packages":
|
||||
[
|
||||
"Vintage"
|
||||
],
|
||||
"rulers":
|
||||
[
|
||||
80
|
||||
100
|
||||
],
|
||||
"scroll_speed": 0,
|
||||
"scroll_past_end": true,
|
||||
"shift_tab_unindent": true,
|
||||
"tab_size": 2,
|
||||
"translate_tabs_to_spaces": true,
|
||||
"trim_trailing_white_space_on_save": true,
|
||||
"word_wrap": true
|
||||
"trim_trailing_white_space_on_save": true
|
||||
}
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
* Symlink these files in the Sublime's Packages/User folder
|
||||
* The `package_control_packages` is just a useful list of packages. You have to install them manually and keep track of them yourself
|
||||
@@ -1,3 +0,0 @@
|
||||
{
|
||||
"tab_size": 2
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
{
|
||||
"tab_size": 2,
|
||||
"translate_tabs_to_spaces": true
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
{
|
||||
"bootstrapped": true,
|
||||
"in_process_packages":
|
||||
[
|
||||
],
|
||||
"installed_packages":
|
||||
[
|
||||
"Alignment",
|
||||
"Cucumber",
|
||||
"Cucumber Step Finder",
|
||||
"Git",
|
||||
"GitGutter",
|
||||
"Guard",
|
||||
"Package Control",
|
||||
"Rake",
|
||||
"RSpec",
|
||||
"RubyTest",
|
||||
"SublimeREPL"
|
||||
"Git Commit Message Syntax",
|
||||
"Gitignore",
|
||||
"Jade"
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user