Commit 6fd0b73e authored by zghember's avatar zghember
Browse files

Merge commit '141c2e59'

parents 6f70d288 141c2e59
...@@ -25,7 +25,12 @@ bindkey -M menuselect '^o' accept-and-infer-next-history ...@@ -25,7 +25,12 @@ bindkey -M menuselect '^o' accept-and-infer-next-history
zstyle ':completion:*:*:*:*:*' menu select zstyle ':completion:*:*:*:*:*' menu select
zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#) ([0-9a-z-]#)*=01;34=0=01' zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#) ([0-9a-z-]#)*=01;34=0=01'
zstyle ':completion:*:*:*:*:processes' command "ps -u `whoami` -o pid,user,comm -w -w" if [ "$OSTYPE[0,7]" = "solaris" ]
then
zstyle ':completion:*:*:*:*:processes' command "ps -u $USER -o pid,user,comm"
else
zstyle ':completion:*:*:*:*:processes' command "ps -u $USER -o pid,user,comm -w -w"
fi
# disable named-directories autocompletion # disable named-directories autocompletion
zstyle ':completion:*:cd:*' tag-order local-directories directory-stack path-directories zstyle ':completion:*:cd:*' tag-order local-directories directory-stack path-directories
......
...@@ -10,23 +10,20 @@ function git_prompt_info() { ...@@ -10,23 +10,20 @@ function git_prompt_info() {
# Checks if working tree is dirty # Checks if working tree is dirty
parse_git_dirty() { parse_git_dirty() {
local SUBMODULE_SYNTAX='' local STATUS=''
local GIT_STATUS='' local FLAGS
local CLEAN_MESSAGE='nothing to commit (working directory clean)' FLAGS=('--porcelain')
if [[ "$(command git config --get oh-my-zsh.hide-status)" != "1" ]]; then if [[ "$(command git config --get oh-my-zsh.hide-dirty)" != "1" ]]; then
if [[ $POST_1_7_2_GIT -gt 0 ]]; then if [[ $POST_1_7_2_GIT -gt 0 ]]; then
SUBMODULE_SYNTAX="--ignore-submodules=dirty" FLAGS+='--ignore-submodules=dirty'
fi fi
if [[ "$DISABLE_UNTRACKED_FILES_DIRTY" == "true" ]]; then if [[ "$DISABLE_UNTRACKED_FILES_DIRTY" == "true" ]]; then
GIT_STATUS=$(command git status -s ${SUBMODULE_SYNTAX} -uno 2> /dev/null | tail -n1) FLAGS+='--untracked-files=no'
else
GIT_STATUS=$(command git status -s ${SUBMODULE_SYNTAX} 2> /dev/null | tail -n1)
fi
if [[ -n $GIT_STATUS ]]; then
echo "$ZSH_THEME_GIT_PROMPT_DIRTY"
else
echo "$ZSH_THEME_GIT_PROMPT_CLEAN"
fi fi
STATUS=$(command git status ${FLAGS} 2> /dev/null | tail -n1)
fi
if [[ -n $STATUS ]]; then
echo "$ZSH_THEME_GIT_PROMPT_DIRTY"
else else
echo "$ZSH_THEME_GIT_PROMPT_CLEAN" echo "$ZSH_THEME_GIT_PROMPT_CLEAN"
fi fi
...@@ -135,17 +132,19 @@ function git_compare_version() { ...@@ -135,17 +132,19 @@ function git_compare_version() {
INSTALLED_GIT_VERSION=(${(s/./)INSTALLED_GIT_VERSION[3]}); INSTALLED_GIT_VERSION=(${(s/./)INSTALLED_GIT_VERSION[3]});
for i in {1..3}; do for i in {1..3}; do
if [[ $INSTALLED_GIT_VERSION[$i] -gt $INPUT_GIT_VERSION[$i] ]]; then
echo 1
return 0
fi
if [[ $INSTALLED_GIT_VERSION[$i] -lt $INPUT_GIT_VERSION[$i] ]]; then if [[ $INSTALLED_GIT_VERSION[$i] -lt $INPUT_GIT_VERSION[$i] ]]; then
echo -1 echo -1
return 0 return 0
fi fi
done done
echo 1 echo 0
} }
#this is unlikely to change so make it all statically assigned #this is unlikely to change so make it all statically assigned
POST_1_7_2_GIT=$(git_compare_version "1.7.2") POST_1_7_2_GIT=$(git_compare_version "1.7.2")
#clean up the namespace slightly by removing the checker function #clean up the namespace slightly by removing the checker function
unset -f git_compare_version unset -f git_compare_version
...@@ -8,18 +8,20 @@ fi ...@@ -8,18 +8,20 @@ fi
# add a function path # add a function path
fpath=($ZSH/functions $ZSH/completions $fpath) fpath=($ZSH/functions $ZSH/completions $fpath)
# Load all of the config files in ~/oh-my-zsh that end in .zsh
# TIP: Add files you don't want in git to .gitignore
for config_file ($ZSH/lib/*.zsh); do
source $config_file
done
# Set ZSH_CUSTOM to the path where your custom config files # Set ZSH_CUSTOM to the path where your custom config files
# and plugins exists, or else we will use the default custom/ # and plugins exists, or else we will use the default custom/
if [[ -z "$ZSH_CUSTOM" ]]; then if [[ -z "$ZSH_CUSTOM" ]]; then
ZSH_CUSTOM="$ZSH/custom" ZSH_CUSTOM="$ZSH/custom"
fi fi
# Load all of the config files in ~/oh-my-zsh that end in .zsh
# TIP: Add files you don't want in git to .gitignore
for config_file ($ZSH/lib/*.zsh); do
custom_config_file="${ZSH_CUSTOM}/lib/${config_file:t}"
[ -f "${custom_config_file}" ] && config_file=${custom_config_file}
source $config_file
done
is_plugin() { is_plugin() {
local base_dir=$1 local base_dir=$1
......
if [ $commands[autojump] ]; then # check if autojump is installed if [ $commands[autojump] ]; then # check if autojump is installed
if [ -f $HOME/.autojump/etc/profile.d/autojump.zsh ]; then # manual user-local installation if [ -f $HOME/.autojump/etc/profile.d/autojump.zsh ]; then # manual user-local installation
. $HOME/.autojump/etc/profile.d/autojump.zsh . $HOME/.autojump/etc/profile.d/autojump.zsh
elif [ -f $HOME/.nix-profile/etc/profile.d/autojump.zsh ]; then # nix installation
. $HOME/.nix-profile/etc/profile.d/autojump.zsh
elif [ -f /usr/share/autojump/autojump.zsh ]; then # debian and ubuntu package elif [ -f /usr/share/autojump/autojump.zsh ]; then # debian and ubuntu package
. /usr/share/autojump/autojump.zsh . /usr/share/autojump/autojump.zsh
elif [ -f /etc/profile.d/autojump.zsh ]; then # manual installation elif [ -f /etc/profile.d/autojump.zsh ]; then # manual installation
......
...@@ -3,19 +3,17 @@ _homebrew-installed() { ...@@ -3,19 +3,17 @@ _homebrew-installed() {
} }
_awscli-homebrew-installed() { _awscli-homebrew-installed() {
brew --prefix awscli &> /dev/null brew list awscli &> /dev/null
} }
export AWS_HOME=~/.aws export AWS_HOME=~/.aws
function agp { function agp {
echo $AWS_DEFAULT_PROFILE echo $AWS_DEFAULT_PROFILE
} }
function asp { function asp {
export AWS_DEFAULT_PROFILE=$1 export AWS_DEFAULT_PROFILE=$1
export RPROMPT="<aws:$AWS_DEFAULT_PROFILE>" export RPROMPT="<aws:$AWS_DEFAULT_PROFILE>"
} }
function aws_profiles { function aws_profiles {
reply=($(grep profile $AWS_HOME/config|sed -e 's/.*profile \([a-zA-Z0-9_-]*\).*/\1/')) reply=($(grep profile $AWS_HOME/config|sed -e 's/.*profile \([a-zA-Z0-9_-]*\).*/\1/'))
......
if [ "$OSTYPE[0,7]" = "solaris" ]
then
if [ ! -x ${HOME}/bin/nroff ]
then
mkdir -p ${HOME}/bin
cat > ${HOME}/bin/nroff <<EOF
#!/bin/sh
if [ -n "\$_NROFF_U" -a "\$1,\$2,\$3" = "-u0,-Tlp,-man" ]; then
shift
exec /usr/bin/nroff -u\${_NROFF_U} "\$@"
fi
#-- Some other invocation of nroff
exec /usr/bin/nroff "\$@"
EOF
chmod +x ${HOME}/bin/nroff
fi
fi
man() { man() {
env \ env \
LESS_TERMCAP_mb=$(printf "\e[1;31m") \ LESS_TERMCAP_mb=$(printf "\e[1;31m") \
...@@ -7,5 +25,8 @@ man() { ...@@ -7,5 +25,8 @@ man() {
LESS_TERMCAP_so=$(printf "\e[1;44;33m") \ LESS_TERMCAP_so=$(printf "\e[1;44;33m") \
LESS_TERMCAP_ue=$(printf "\e[0m") \ LESS_TERMCAP_ue=$(printf "\e[0m") \
LESS_TERMCAP_us=$(printf "\e[1;32m") \ LESS_TERMCAP_us=$(printf "\e[1;32m") \
PAGER=/usr/bin/less \
_NROFF_U=1 \
PATH=${HOME}/bin:${PATH} \
man "$@" man "$@"
} }
...@@ -46,7 +46,6 @@ alias ff='find . -type f -name' ...@@ -46,7 +46,6 @@ alias ff='find . -type f -name'
alias h='history' alias h='history'
alias hgrep="fc -El 0 | grep" alias hgrep="fc -El 0 | grep"
alias help='man' alias help='man'
alias j='jobs'
alias p='ps -f' alias p='ps -f'
alias sortnr='sort -n -r' alias sortnr='sort -n -r'
alias unexport='unset' alias unexport='unset'
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
# that the user has changed to in the past, and ALT-RIGHT undoes ALT-LEFT. # that the user has changed to in the past, and ALT-RIGHT undoes ALT-LEFT.
# #
dirhistory_past=(`pwd`) dirhistory_past=($PWD)
dirhistory_future=() dirhistory_future=()
export dirhistory_past export dirhistory_past
export dirhistory_future export dirhistory_future
...@@ -50,7 +50,7 @@ function push_future() { ...@@ -50,7 +50,7 @@ function push_future() {
# Called by zsh when directory changes # Called by zsh when directory changes
function chpwd() { function chpwd() {
push_past `pwd` push_past $PWD
# If DIRHISTORY_CD is not set... # If DIRHISTORY_CD is not set...
if [[ -z "${DIRHISTORY_CD+x}" ]]; then if [[ -z "${DIRHISTORY_CD+x}" ]]; then
# ... clear future. # ... clear future.
...@@ -73,7 +73,7 @@ function dirhistory_back() { ...@@ -73,7 +73,7 @@ function dirhistory_back() {
pop_past cw pop_past cw
if [[ "" == "$cw" ]]; then if [[ "" == "$cw" ]]; then
# Someone overwrote our variable. Recover it. # Someone overwrote our variable. Recover it.
dirhistory_past=(`pwd`) dirhistory_past=($PWD)
return return
fi fi
......
...@@ -8,21 +8,25 @@ ...@@ -8,21 +8,25 @@
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
function emoji-clock() { function emoji-clock() {
hour=$(date -v '+15M' '+%I') # Add 15 minutes to the current time and save the value as $minutes.
minutes=$(date -v '+15M' '+%M') (( minutes = $(date '+%M') + 15 ))
(( hour = $(date '+%I') + minutes / 60 ))
# make sure minutes and hours don't exceed 60 nor 12 respectively
(( minutes %= 60 )); (( hour %= 12 ))
case $hour in case $hour in
01) clock="🕐"; [ $minutes -ge 30 ] && clock="🕜";; 0) clock="🕛"; [ $minutes -ge 30 ] && clock="🕧";;
02) clock="🕑"; [ $minutes -ge 30 ] && clock="🕝";; 1) clock="🕐"; [ $minutes -ge 30 ] && clock="🕜";;
03) clock="🕒"; [ $minutes -ge 30 ] && clock="🕞";; 2) clock="🕑"; [ $minutes -ge 30 ] && clock="🕝";;
04) clock="🕓"; [ $minutes -ge 30 ] && clock="🕟";; 3) clock="🕒"; [ $minutes -ge 30 ] && clock="🕞";;
05) clock="🕔"; [ $minutes -ge 30 ] && clock="🕠";; 4) clock="🕓"; [ $minutes -ge 30 ] && clock="🕟";;
06) clock="🕕"; [ $minutes -ge 30 ] && clock="🕡";; 5) clock="🕔"; [ $minutes -ge 30 ] && clock="🕠";;
07) clock="🕖"; [ $minutes -ge 30 ] && clock="🕢";; 6) clock="🕕"; [ $minutes -ge 30 ] && clock="🕡";;
08) clock="🕗"; [ $minutes -ge 30 ] && clock="🕣";; 7) clock="🕖"; [ $minutes -ge 30 ] && clock="🕢";;
09) clock="🕘"; [ $minutes -ge 30 ] && clock="🕤";; 8) clock="🕗"; [ $minutes -ge 30 ] && clock="🕣";;
9) clock="🕘"; [ $minutes -ge 30 ] && clock="🕤";;
10) clock="🕙"; [ $minutes -ge 30 ] && clock="🕥";; 10) clock="🕙"; [ $minutes -ge 30 ] && clock="🕥";;
11) clock="🕚"; [ $minutes -ge 30 ] && clock="🕦";; 11) clock="🕚"; [ $minutes -ge 30 ] && clock="🕦";;
12) clock="🕛"; [ $minutes -ge 30 ] && clock="🕧";;
*) clock="⌛";; *) clock="⌛";;
esac esac
echo $clock echo $clock
......
...@@ -38,7 +38,7 @@ function extract() { ...@@ -38,7 +38,7 @@ function extract() {
file_name="$( basename "$1" )" file_name="$( basename "$1" )"
extract_dir="$( echo "$file_name" | sed "s/\.${1##*.}//g" )" extract_dir="$( echo "$file_name" | sed "s/\.${1##*.}//g" )"
case "$1" in case "$1" in
(*.tar.gz|*.tgz) tar xvzf "$1" ;; (*.tar.gz|*.tgz) [ -z $commands[pigz] ] && tar zxvf "$1" || pigz -dc "$1" | tar xv ;;
(*.tar.bz2|*.tbz|*.tbz2) tar xvjf "$1" ;; (*.tar.bz2|*.tbz|*.tbz2) tar xvjf "$1" ;;
(*.tar.xz|*.txz) tar --xz --help &> /dev/null \ (*.tar.xz|*.txz) tar --xz --help &> /dev/null \
&& tar --xz -xvf "$1" \ && tar --xz -xvf "$1" \
...@@ -47,7 +47,7 @@ function extract() { ...@@ -47,7 +47,7 @@ function extract() {
&& tar --lzma -xvf "$1" \ && tar --lzma -xvf "$1" \
|| lzcat "$1" | tar xvf - ;; || lzcat "$1" | tar xvf - ;;
(*.tar) tar xvf "$1" ;; (*.tar) tar xvf "$1" ;;
(*.gz) gunzip "$1" ;; (*.gz) [ -z $commands[pigz] ] && gunzip "$1" || pigz -d "$1" ;;
(*.bz2) bunzip2 "$1" ;; (*.bz2) bunzip2 "$1" ;;
(*.xz) unxz "$1" ;; (*.xz) unxz "$1" ;;
(*.lzma) unlzma "$1" ;; (*.lzma) unlzma "$1" ;;
......
# Open folder in ForkLift.app of ForkLift2.app from console # Open folder in ForkLift.app or ForkLift2.app from console
# Author: Adam Strzelecki nanoant.com, modified by Bodo Tasche bitboxer.de # Author: Adam Strzelecki nanoant.com, modified by Bodo Tasche bitboxer.de
# Updated to support ForkLift2 by Johan Kaving # Updated to support ForkLift2 by Johan Kaving
# #
......
...@@ -118,7 +118,7 @@ alias jquery='frontend jquery' ...@@ -118,7 +118,7 @@ alias jquery='frontend jquery'
alias mdn='frontend mdn' alias mdn='frontend mdn'
# pre processors frameworks # pre processors frameworks
alias compass='frontend compass' alias compassdoc='frontend compass'
# important links # important links
alias html5please='frontend html5please' alias html5please='frontend html5please'
......
function gi() { curl http://www.gitignore.io/api/$@ ;} function gi() { curl -sL https://www.gitignore.io/api/$@ ;}
_gitignireio_get_command_list() { _gitignoreio_get_command_list() {
curl -s http://www.gitignore.io/api/list | tr "," "\n" curl -sL https://www.gitignore.io/api/list | tr "," "\n"
} }
_gitignireio () { _gitignoreio () {
compset -P '*,' compset -P '*,'
compadd -S '' `_gitignireio_get_command_list` compadd -S '' `_gitignoreio_get_command_list`
} }
compdef _gitignireio gi compdef _gitignoreio gi
...@@ -14,12 +14,12 @@ jump() { ...@@ -14,12 +14,12 @@ jump() {
mark() { mark() {
if (( $# == 0 )); then if (( $# == 0 )); then
MARK=$(basename "$(pwd)") MARK=$(basename "$PWD")
else else
MARK="$1" MARK="$1"
fi fi
if read -q \?"Mark $(pwd) as ${MARK}? (y/n) "; then if read -q \?"Mark $PWD as ${MARK}? (y/n) "; then
mkdir -p "$MARKPATH"; ln -s "$(pwd)" "$MARKPATH/$MARK" mkdir -p "$MARKPATH"; ln -s "$PWD" "$MARKPATH/$MARK"
fi fi
} }
......
...@@ -139,7 +139,7 @@ function man-preview() { ...@@ -139,7 +139,7 @@ function man-preview() {
function trash() { function trash() {
local trash_dir="${HOME}/.Trash" local trash_dir="${HOME}/.Trash"
local temp_ifs=$IFS local temp_ifs="$IFS"
IFS=$'\n' IFS=$'\n'
for item in "$@"; do for item in "$@"; do
if [[ -e "$item" ]]; then if [[ -e "$item" ]]; then
......
...@@ -18,8 +18,11 @@ function pj() { ...@@ -18,8 +18,11 @@ function pj() {
file=$1 file=$1
if [[ "open" == "$file" ]] then if [[ "open" == "$file" ]] then
file=$2 shift
file=$*
cmd=(${(s: :)EDITOR}) cmd=(${(s: :)EDITOR})
else
file=$*
fi fi
for project in $PROJECT_PATHS; do for project in $PROJECT_PATHS; do
...@@ -36,7 +39,11 @@ function pj() { ...@@ -36,7 +39,11 @@ function pj() {
alias pjo="pj open" alias pjo="pj open"
function _pj () { function _pj () {
compadd `/bin/ls -l $PROJECT_PATHS 2>/dev/null | awk '{ print $9 }'` # might be possible to improve this using glob, without the basename trick
typeset -a projects
projects=($PROJECT_PATHS/*)
projects=$projects:t
_arguments "*:file:($projects)"
} }
compdef _pj pj compdef _pj pj
...@@ -21,13 +21,13 @@ ...@@ -21,13 +21,13 @@
rack_root(){ rack_root(){
setopt chaselinks setopt chaselinks
local orgdir="$(pwd)" local orgdir="$PWD"
local basedir="$(pwd)" local basedir="$PWD"
while [[ $basedir != '/' ]]; do while [[ $basedir != '/' ]]; do
test -e "$basedir/config.ru" && break test -e "$basedir/config.ru" && break
builtin cd ".." 2>/dev/null builtin cd ".." 2>/dev/null
basedir="$(pwd)" basedir="$PWD"
done done
builtin cd "$orgdir" 2>/dev/null builtin cd "$orgdir" 2>/dev/null
...@@ -56,7 +56,7 @@ kapow(){ ...@@ -56,7 +56,7 @@ kapow(){
compctl -W ~/.pow -/ kapow compctl -W ~/.pow -/ kapow
powit(){ powit(){
local basedir="$(pwd)" local basedir="$PWD"
local vhost=$1 local vhost=$1
[ ! -n "$vhost" ] && vhost=$(rack_root_detect) [ ! -n "$vhost" ] && vhost=$(rack_root_detect)
if [ ! -h ~/.pow/$vhost ] if [ ! -h ~/.pow/$vhost ]
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
# This will look for a custom profile for the local machine and each domain or # This will look for a custom profile for the local machine and each domain or
# subdomain it belongs to. (e.g. com, example.com and foo.example.com) # subdomain it belongs to. (e.g. com, example.com and foo.example.com)
parts=(${(s:.:)$(hostname)}) parts=(${(s:.:)HOST})
for i in {${#parts}..1}; do for i in {${#parts}..1}; do
profile=${(j:.:)${parts[$i,${#parts}]}} profile=${(j:.:)${parts[$i,${#parts}]}}
file=$ZSH_CUSTOM/profiles/$profile file=$ZSH_CUSTOM/profiles/$profile
......
...@@ -6,7 +6,7 @@ function _rails_command () { ...@@ -6,7 +6,7 @@ function _rails_command () {
elif [ -e "script/server" ]; then elif [ -e "script/server" ]; then
ruby script/$@ ruby script/$@
else else
rails $@ command rails $@
fi fi
} }
...@@ -14,7 +14,7 @@ function _rake_command () { ...@@ -14,7 +14,7 @@ function _rake_command () {
if [ -e "bin/rake" ]; then if [ -e "bin/rake" ]; then
bin/rake $@ bin/rake $@
else else
rake $@ command rake $@
fi fi
} }
......
...@@ -11,12 +11,9 @@ the index. A selection menu is displayed in case of several matches, with a ...@@ -11,12 +11,9 @@ the index. A selection menu is displayed in case of several matches, with a
preference given to recently visited paths. `scd` can create permanent preference given to recently visited paths. `scd` can create permanent
directory aliases, which appear as named directories in zsh session. directory aliases, which appear as named directories in zsh session.
## INSTALLATION ## INSTALLATION NOTES
For oh-my-zsh, add `scd` to the `plugins` array in the ~/.zshrc file as in the Besides oh-my-zsh, `scd` can be used with *bash*, *dash* or *tcsh*
[template file](../../templates/zshrc.zsh-template#L45).
Besides zsh, `scd` can be used with *bash*, *dash* or *tcsh*
shells and is also available as [Vim](http://www.vim.org/) plugin and shells and is also available as [Vim](http://www.vim.org/) plugin and
[IPython](http://ipython.org/) extension. For installation details, see [IPython](http://ipython.org/) extension. For installation details, see
https://github.com/pavoljuhas/smart-change-directory. https://github.com/pavoljuhas/smart-change-directory.
...@@ -34,7 +31,7 @@ scd [options] [pattern1 pattern2 ...] ...@@ -34,7 +31,7 @@ scd [options] [pattern1 pattern2 ...]
add specified directories to the directory index.</dd><dt> add specified directories to the directory index.</dd><dt>
--unindex</dt><dd> --unindex</dt><dd>
remove specified directories from the index.</dd><dt> remove current or specified directories from the index.</dd><dt>
-r, --recursive</dt><dd> -r, --recursive</dt><dd>
apply options <em>--add</em> or <em>--unindex</em> recursively.</dd><dt> apply options <em>--add</em> or <em>--unindex</em> recursively.</dd><dt>
...@@ -47,6 +44,10 @@ scd [options] [pattern1 pattern2 ...] ...@@ -47,6 +44,10 @@ scd [options] [pattern1 pattern2 ...]
remove ALIAS definition for the current or specified directory from remove ALIAS definition for the current or specified directory from
<em>~/.scdalias.zsh</em>.</dd><dt> <em>~/.scdalias.zsh</em>.</dd><dt>
-A, --all</dt><dd>
include all matching directories. Disregard matching by directory
alias and filtering of less likely paths.</dd><dt>
--list</dt><dd> --list</dt><dd>
show matching directories and exit.</dd><dt> show matching directories and exit.</dd><dt>
...@@ -70,7 +71,7 @@ scd doc ...@@ -70,7 +71,7 @@ scd doc
scd a b c scd a b c
# Change to a directory path that ends with "ts" # Change to a directory path that ends with "ts"
scd "ts(#e)" scd "ts$"
# Show selection menu and ranking of 20 most likely directories # Show selection menu and ranking of 20 most likely directories
scd -v scd -v
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment