summaryrefslogtreecommitdiff
path: root/functions
diff options
context:
space:
mode:
authorromkatv <roman.perepelitsa@gmail.com>2019-05-19 00:50:06 +0300
committerromkatv <roman.perepelitsa@gmail.com>2019-05-19 00:50:06 +0300
commit7cfe479c87051b263ea34f1ddc6f605851040f51 (patch)
tree2081c9877e16921d25f3eeddf4e1546ae3bbd6b2 /functions
parent55d887c21e0355d0f891881ae7327ebdc0dfc09e (diff)
support dynamic directories in dir prompt and fix a dozen bugs
Diffstat (limited to 'functions')
-rwxr-xr-xfunctions/utilities.zsh92
1 files changed, 0 insertions, 92 deletions
diff --git a/functions/utilities.zsh b/functions/utilities.zsh
index 9821b287..eefe47b7 100755
--- a/functions/utilities.zsh
+++ b/functions/utilities.zsh
@@ -86,98 +86,6 @@ segment_in_use() {
-n "${POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS[(r)${key}_joined]}" ]]
}
-################################################################
-# Given a directory path, truncate it according to the settings.
-# Parameters:
-# * $1 Path: string - the directory path to be truncated
-# * $2 Length: integer - length to truncate to
-# * $3 Delimiter: string - the delimiter to use
-# * $4 From: string - "right" | "middle". If omited, assumes right.
-function truncatePath() {
- # if the current path is not 1 character long (e.g. "/" or "~")
- if (( ${#1} > 1 )); then
- # convert $2 from string to integer
- 2=$(( $2 ))
- # set $3 to "" if not defined
- [[ -z $3 ]] && 3="" || 3=$(echo -n $3)
- # set $4 to "right" if not defined
- [[ -z $4 ]] && 4="right"
- # create a variable for the truncated path.
- local trunc_path
- # if the path is in the home folder, add "~/" to the start otherwise "/"
- [[ $1 == "~"* ]] && trunc_path='~/' || trunc_path='/'
- # split the path into an array using "/" as the delimiter
- local paths=$1
- paths=(${(s:/:)${paths//"~\/"/}})
- # declare locals for the directory being tested and its length
- local test_dir test_dir_length
- # do the needed truncation
- case $4 in
- right)
- # include the delimiter length in the threshhold
- local threshhold=$(( $2 + ${#3} ))
- # loop through the paths
- for (( i=1; i<${#paths}; i++ )); do
- # get the current directory value
- test_dir=$paths[$i]
- test_dir_length=${#test_dir}
- # only truncate if the resulting truncation will be shorter than
- # the truncation + delimiter length and at least 3 characters
- if (( $test_dir_length > $threshhold )) && (( $test_dir_length > 3 )); then
- # use the first $2 characters and the delimiter
- trunc_path+="${test_dir:0:$2}$3/"
- else
- # use the full path
- trunc_path+="${test_dir}/"
- fi
- done
- ;;
- middle)
- # we need double the length for start and end truncation + delimiter length
- local threshhold=$(( $2 * 2 ))
- # create a variable for the start of the end truncation
- local last_pos
- # loop through the paths
- for (( i=1; i<${#paths}; i++ )); do
- # get the current directory value
- test_dir=$paths[$i]
- test_dir_length=${#test_dir}
- # only truncate if the resulting truncation will be shorter than
- # the truncation + delimiter length
- if (( $test_dir_length > $threshhold )); then
- # use the first $2 characters, the delimiter and the last $2 characters
- last_pos=$(( $test_dir_length - $2 ))
- trunc_path+="${test_dir:0:$2}$3${test_dir:$last_pos:$test_dir_length}/"
- else
- # use the full path
- trunc_path+="${test_dir}/"
- fi
- done
- ;;
- esac
- # return the truncated path + the current directory
- echo $trunc_path${1:t}
- else # current path is 1 character long (e.g. "/" or "~")
- echo $1
- fi
-}
-
-# Search recursively in parent folders for given file.
-function upsearch () {
- if [[ "$PWD" == "$HOME" || "$PWD" == "/" ]]; then
- echo "$PWD"
- elif test -e "$1"; then
- pushd .. > /dev/null
- upsearch "$1"
- popd > /dev/null
- echo "$PWD"
- else
- pushd .. > /dev/null
- upsearch "$1"
- popd > /dev/null
- fi
-}
-
# Parse IP address from ifconfig on OSX and from IP on Linux
# Parameters:
# $1 - string The desired Interface