Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
adam.huang
Oh My Zsh
Commits
772bc51c
Commit
772bc51c
authored
Jul 24, 2012
by
James Smith
Browse files
Merge
parents
0ba398f9
d05b2010
Changes
106
Hide whitespace changes
Inline
Side-by-side
themes/zhann.zsh-theme
0 → 100644
View file @
772bc51c
PROMPT='%{$fg_bold[green]%}%p %{$fg[cyan]%}%c%{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}'
if which rvm-prompt &> /dev/null; then
RPROMPT='%{$reset_color%} %{$fg[red]%}$(~/.rvm/bin/rvm-prompt i v g) %{$reset_color%}'
else
if which rbenv &> /dev/null; then
RPROMPT='%{$reset_color%} %{$fg[red]%}$(rbenv version | sed -e "s/ (set.*$//") %{$reset_color%}'
fi
fi
ZSH_THEME_GIT_PROMPT_PREFIX=" (%{$fg[red]%}"
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}"
ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[blue]%}) %{$fg[yellow]%}✗%{$reset_color%}"
ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg[blue]%})"
tools/check_for_upgrade.sh
View file @
772bc51c
...
@@ -8,6 +8,12 @@ function _update_zsh_update() {
...
@@ -8,6 +8,12 @@ function _update_zsh_update() {
echo
"LAST_EPOCH=
$(
_current_epoch
)
"
>
~/.zsh-update
echo
"LAST_EPOCH=
$(
_current_epoch
)
"
>
~/.zsh-update
}
}
function
_upgrade_zsh
()
{
/usr/bin/env
ZSH
=
$ZSH
/bin/sh
$ZSH
/tools/upgrade.sh
# update the zsh file
_update_zsh_update
}
if
[
-f
~/.zsh-update
]
if
[
-f
~/.zsh-update
]
then
then
.
~/.zsh-update
.
~/.zsh-update
...
@@ -17,19 +23,24 @@ then
...
@@ -17,19 +23,24 @@ then
fi
fi
epoch_diff
=
$((
$(
_current_epoch
)
-
$LAST_EPOCH
))
epoch_diff
=
$((
$(
_current_epoch
)
-
$LAST_EPOCH
))
if
[
$epoch_diff
-gt
6
]
if
[
$epoch_diff
-gt
13
]
then
then
echo
"[Oh My Zsh] Would you like to check for updates?"
if
[
"
$DISABLE_UPDATE_PROMPT
"
=
"true"
]
echo
"Type Y to update oh-my-zsh:
\c
"
read
line
if
[
"
$line
"
=
Y
]
||
[
"
$line
"
=
y
]
then
then
/bin/sh
$ZSH
/tools/upgrade.sh
_upgrade_zsh
# update the zsh file
else
_update_zsh_update
echo
"[Oh My Zsh] Would you like to check for updates?"
echo
"Type Y to update oh-my-zsh:
\c
"
read
line
if
[
"
$line
"
=
Y
]
||
[
"
$line
"
=
y
]
;
then
_upgrade_zsh
else
_update_zsh_update
fi
fi
fi
fi
fi
else
else
# create the zsh file
# create the zsh file
_update_zsh_update
_update_zsh_update
fi
fi
tools/install.sh
View file @
772bc51c
...
@@ -5,7 +5,10 @@ then
...
@@ -5,7 +5,10 @@ then
fi
fi
echo
"
\0
33[0;34mCloning Oh My Zsh...
\0
33[0m"
echo
"
\0
33[0;34mCloning Oh My Zsh...
\0
33[0m"
/usr/bin/env git clone https://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
hash
git
>
/dev/null
&&
/usr/bin/env git clone https://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
||
{
echo
"git not installed"
exit
}
echo
"
\0
33[0;34mLooking for an existing zsh config...
\0
33[0m"
echo
"
\0
33[0;34mLooking for an existing zsh config...
\0
33[0m"
if
[
-f
~/.zshrc
]
||
[
-h
~/.zshrc
]
if
[
-f
~/.zshrc
]
||
[
-h
~/.zshrc
]
...
...
tools/require_tool.sh
0 → 100755
View file @
772bc51c
__require_tool_version_compare
()
{
(
# Locally ignore failures, otherwise we'll exit whenever $1 and $2
# are not equal!
set
+e
awk_strverscmp
=
'
# Use only awk features that work with 7th edition Unix awk (1978).
# My, what an old awk you have, Mr. Solaris!
END {
while (length(v1) || length(v2)) {
# Set d1 to be the next thing to compare from v1, and likewise for d2.
# Normally this is a single character, but if v1 and v2 contain digits,
# compare them as integers and fractions as strverscmp does.
if (v1 ~ /^[0-9]/ && v2 ~ /^[0-9]/) {
# Split v1 and v2 into their leading digit string components d1 and d2,
# and advance v1 and v2 past the leading digit strings.
for (len1 = 1; substr(v1, len1 + 1) ~ /^[0-9]/; len1++) continue
for (len2 = 1; substr(v2, len2 + 1) ~ /^[0-9]/; len2++) continue
d1 = substr(v1, 1, len1); v1 = substr(v1, len1 + 1)
d2 = substr(v2, 1, len2); v2 = substr(v2, len2 + 1)
if (d1 ~ /^0/) {
if (d2 ~ /^0/) {
# Compare two fractions.
while (d1 ~ /^0/ && d2 ~ /^0/) {
d1 = substr(d1, 2); len1--
d2 = substr(d2, 2); len2--
}
if (len1 != len2 && ! (len1 && len2 && substr(d1, 1, 1) == substr(d2, 1, 1))) {
# The two components differ in length, and the common prefix
# contains only leading zeros. Consider the longer to be less.
d1 = -len1
d2 = -len2
} else {
# Otherwise, compare as strings.
d1 = "x" d1
d2 = "x" d2
}
} else {
# A fraction is less than an integer.
exit 1
}
} else {
if (d2 ~ /^0/) {
# An integer is greater than a fraction.
exit 2
} else {
# Compare two integers.
d1 += 0
d2 += 0
}
}
} else {
# The normal case, without worrying about digits.
if (v1 == "") d1 = v1; else { d1 = substr(v1, 1, 1); v1 = substr(v1,2) }
if (v2 == "") d2 = v2; else { d2 = substr(v2, 1, 1); v2 = substr(v2,2) }
}
if (d1 < d2) exit 1
if (d1 > d2) exit 2
}
}
'
awk
"
$awk_strverscmp
"
v1
=
"
$1
"
v2
=
"
$2
"
/dev/null
case
$?
in
1
)
echo
'<'
;;
0
)
echo
'='
;;
2
)
echo
'>'
;;
esac
)
}
__require_tool_fatal
()
{
echo
$@
>
/dev/stderr
return
1
}
# Usage: require_tool program version
# Returns: 0 if $1 version if greater equals than $2, 1 otherwise.
# In case of error, message is written on error output.
#
# Example: require_tool gcc 4.6
# Use GCC environment variable if defined instead of lookup for the tool
# in the environment.
require_tool
()
{
envvar_name
=
$(
echo
$1
|
tr
'[:lower:]'
'[:upper:]'
)
tool
=
$(
printenv
$envvar_name
||
echo
$1
)
local
version
=
$(
$tool
--version
2>/dev/null|
\
sed
-n
's/.*[^0-9.]\([0-9]*\.[0-9.]*\).*/\1/p;q'
)
if
test
x
"
$version
"
=
x
;
then
echo
"
$tool
is required"
>
/dev/stderr
return
1
fi
case
$(
__require_tool_version_compare
"
$2
"
"
$version
"
)
in
'>'
)
echo
"
$1
$2
or better is required: this is
$tool
$version
"
>
/dev/stderr
return
1
;;
esac
}
usage
()
{
cat
<<
EOF
NAME
require_tool.sh - Ensure version of a tool is greater than the one expected
SYNOPSYS
require_tool.sh [ -h ]
[ --help ]
[ TOOL MIN_VERSION ]
DESCRIPTION
TOOL is the name or path of the program to check. If the name is specified, its
path is deduced from PATH environment variable. If environment variable TOOL
(in upper-case characters) is defined, considers its value as path to the tool.
MIN_VERSION is a string representing the minimum required version.
BEHAVIOR
* locate path to the program.
* execute
$
TOOL_PATH --version
* extract version from standard output.
* compare this version to the expected one.
OPTIONS
-h --help
Display this message and exit 0
ERRORS
if program is not found or its version is prior to expected version,
a message is written to error output.
EXIT VALUE
returns 0 if program version if greater equals than expected version,
returns 1 otherwise.
EXAMPLE
$
require_tool.sh emacs 23
$
CC=g++ require_tool.sh cc 4.6
$
require_tool.sh zsh 4.5
EOF
}
for
arg
in
$@
;
do
case
$arg
in
-h
|
--help
)
usage
exit
0
;;
esac
done
if
[
$#
-gt
2
]
;
then
echo
"ERROR: expecting 2 parameters. Please see option --help"
exit
1
fi
require_tool
$@
tools/theme_chooser.sh
0 → 100755
View file @
772bc51c
#!/bin/zsh
# Zsh Theme Chooser by fox (fox91 at anche dot no)
# This program is free software. It comes without any warranty, to
# the extent permitted by applicable law. You can redistribute it
# and/or modify it under the terms of the Do What The Fuck You Want
# To Public License, Version 2, as published by Sam Hocevar. See
# http://sam.zoy.org/wtfpl/COPYING for more details.
THEMES_DIR
=
"
$ZSH
/themes"
FAVLIST
=
"
${
HOME
}
/.zsh_favlist"
source
$ZSH
/oh-my-zsh.sh
function
noyes
()
{
read
"a?
$1
[y/N] "
if
[[
$a
==
"N"
||
$a
==
"n"
||
$a
=
""
]]
;
then
return
0
fi
return
1
}
function
theme_preview
()
{
THEME
=
$1
THEME_NAME
=
`
echo
$THEME
|
sed
s/
\.
zsh-theme
$/
/
`
print
"
$fg
[blue]
${
(l.((
${
COLUMNS
}
-
${#
THEME_NAME
}
-5))..─.)
}
$reset_color
$THEME_NAME
$fg
[blue]───
$reset_color
"
source
"
$THEMES_DIR
/
$THEME
"
print
-P
$PROMPT
}
function
banner
()
{
echo
echo
"[0;1;35;95m╺━[0;1;31;91m┓┏[0;1;33;93m━┓[0;1;32;92m╻[0m [0;1;36;96m╻[0m [0;1;35;95m╺┳[0;1;31;91m╸╻[0m [0;1;33;93m╻[0;1;32;92m┏━[0;1;36;96m╸┏[0;1;34;94m┳┓[0;1;35;95m┏━[0;1;31;91m╸[0m [0;1;32;92m┏━[0;1;36;96m╸╻[0m [0;1;34;94m╻[0;1;35;95m┏━[0;1;31;91m┓┏[0;1;33;93m━┓[0;1;32;92m┏━[0;1;36;96m┓┏[0;1;34;94m━╸[0;1;35;95m┏━[0;1;31;91m┓[0m"
echo
"[0;1;31;91m┏━[0;1;33;93m┛┗[0;1;32;92m━┓[0;1;36;96m┣━[0;1;34;94m┫[0m [0;1;31;91m┃[0m [0;1;33;93m┣[0;1;32;92m━┫[0;1;36;96m┣╸[0m [0;1;34;94m┃[0;1;35;95m┃┃[0;1;31;91m┣╸[0m [0;1;36;96m┃[0m [0;1;34;94m┣[0;1;35;95m━┫[0;1;31;91m┃[0m [0;1;33;93m┃┃[0m [0;1;32;92m┃[0;1;36;96m┗━[0;1;34;94m┓┣[0;1;35;95m╸[0m [0;1;31;91m┣┳[0;1;33;93m┛[0m"
echo
"[0;1;33;93m┗━[0;1;32;92m╸┗[0;1;36;96m━┛[0;1;34;94m╹[0m [0;1;35;95m╹[0m [0;1;33;93m╹[0m [0;1;32;92m╹[0m [0;1;36;96m╹[0;1;34;94m┗━[0;1;35;95m╸╹[0m [0;1;31;91m╹[0;1;33;93m┗━[0;1;32;92m╸[0m [0;1;34;94m┗━[0;1;35;95m╸╹[0m [0;1;31;91m╹[0;1;33;93m┗━[0;1;32;92m┛┗[0;1;36;96m━┛[0;1;34;94m┗━[0;1;35;95m┛┗[0;1;31;91m━╸[0;1;33;93m╹┗[0;1;32;92m╸[0m"
echo
}
function
usage
()
{
echo
"Usage:
$0
[options] [theme]"
echo
echo
"Options"
echo
" -l List available themes"
echo
" -s Show all themes"
echo
" -h Get this help message"
exit
1
}
function
list_themes
()
{
for
THEME
in
$(
ls
$THEMES_DIR
)
;
do
THEME_NAME
=
`
echo
$THEME
|
sed
s/
\.
zsh-theme
$/
/
`
echo
$THEME_NAME
done
}
function
insert_favlist
()
{
if
grep
-q
"
$THEME_NAME
"
$FAVLIST
2> /dev/null
;
then
echo
"Already in favlist"
else
echo
$THEME_NAME
>>
$FAVLIST
echo
"Saved to favlist"
fi
}
function
theme_chooser
()
{
for
THEME
in
$(
ls
$THEMES_DIR
)
;
do
echo
theme_preview
$THEME
echo
if
[[
-z
$1
]]
;
then
noyes
"Do you want to add it to your favourite list (
$FAVLIST
)?"
||
\
insert_favlist
$THEME_NAME
echo
fi
done
}
while
getopts
":lhs"
Option
do
case
$Option
in
l
)
list_themes
;;
s
)
theme_chooser 0
;;
h
)
usage
;;
*
)
usage
;;
# Default.
esac
done
if
[[
-z
$Option
]]
;
then
if
[[
-z
$1
]]
;
then
banner
echo
theme_chooser
else
theme_preview
$1
".zsh-theme"
fi
fi
tools/upgrade.sh
View file @
772bc51c
current_path
=
`
pwd
`
current_path
=
`
pwd
`
echo
"
\0
33[0;34mUpgrading Oh My Zsh
\0
33[0m"
printf
'\033[0;34m%s\033[0m\n'
"Upgrading Oh My Zsh"
(
cd
$ZSH
&&
git pull origin master
)
cd
$ZSH
echo
"
\0
33[0;32m"
' __ __ '
"
\0
33[0m"
echo
"
\0
33[0;32m"
' ____ / /_ ____ ___ __ __ ____ _____/ /_ '
"
\0
33[0m"
if
git pull origin master
echo
"
\0
33[0;32m"
' / __ \/ __ \ / __ `__ \/ / / / /_ / / ___/ __ \ '
"
\0
33[0m"
then
echo
"
\0
33[0;32m"
'/ /_/ / / / / / / / / / / /_/ / / /_(__ ) / / / '
"
\0
33[0m"
printf
'\033[0;32m%s\033[0m\n'
' __ __ '
echo
"
\0
33[0;32m"
'\____/_/ /_/ /_/ /_/ /_/\__, / /___/____/_/ /_/ '
"
\0
33[0m"
printf
'\033[0;32m%s\033[0m\n'
' ____ / /_ ____ ___ __ __ ____ _____/ /_ '
echo
"
\0
33[0;32m"
' /____/ '
"
\0
33[0m"
printf
'\033[0;32m%s\033[0m\n'
' / __ \/ __ \ / __ `__ \/ / / / /_ / / ___/ __ \ '
echo
"
\0
33[0;34mHooray! Oh My Zsh has been updated and/or is at the current version.
\0
33[0m"
printf
'\033[0;32m%s\033[0m\n'
'/ /_/ / / / / / / / / / / /_/ / / /_(__ ) / / / '
echo
"
\0
33[0;34mTo keep up on the latest, be sure to follow Oh My Zsh on twitter:
\0
33[1mhttp://twitter.com/ohmyzsh
\0
33[0m"
printf
'\033[0;32m%s\033[0m\n'
'\____/_/ /_/ /_/ /_/ /_/\__, / /___/____/_/ /_/ '
cd
"
$current_path
"
printf
'\033[0;32m%s\033[0m\n'
' /____/ '
printf
'\033[0;34m%s\033[0m\n'
'Hooray! Oh My Zsh has been updated and/or is at the current version.'
printf
'\033[0;34m%s\033[1m%s\033[0m\n'
'To keep up on the latest, be sure to follow Oh My Zsh on twitter: '
'http://twitter.com/ohmyzsh'
else
printf
'\033[0;31m%s\033[0m\n'
'There was an error updating. Try again later?'
fi
cd
"
$current_path
"
\ No newline at end of file
Prev
1
2
3
4
5
6
Next
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment