blob: 5b4c77d3391ddfb242db7928e0f4ec4891658dea (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
#
# Working directory
#
function __sf_section_dir -d "Display the current truncated directory"
# ------------------------------------------------------------------------------
# Configuration
# ------------------------------------------------------------------------------
__sf_util_set_default SPACEFISH_DIR_SHOW true
__sf_util_set_default SPACEFISH_DIR_PREFIX "in "
__sf_util_set_default SPACEFISH_DIR_SUFFIX $SPACEFISH_PROMPT_DEFAULT_SUFFIX
__sf_util_set_default SPACEFISH_DIR_TRUNC 3
__sf_util_set_default SPACEFISH_DIR_TRUNC_REPO true
__sf_util_set_default SPACEFISH_DIR_COLOR cyan
# Write Permissions lock symbol
__sf_util_set_default SPACEFISH_DIR_LOCK_SHOW true
__sf_util_set_default SPACEFISH_DIR_LOCK_SYMBOL ""
__sf_util_set_default SPACEFISH_DIR_LOCK_COLOR red
# ------------------------------------------------------------------------------
# Section
# ------------------------------------------------------------------------------
[ $SPACEFISH_DIR_SHOW = false ]; and return
set -l dir
set -l tmp
set -l git_root (command git rev-parse --show-toplevel 2>/dev/null)
if test "$SPACEFISH_DIR_TRUNC_REPO" = "true" -a -n "$git_root"
# Resolve to physical PWD instead of logical
set -l resolvedPWD (pwd -P 2>/dev/null; or pwd)
# Treat repo root as top level directory
set tmp (string replace $git_root (basename $git_root) $resolvedPWD)
else
set -l realhome ~
set tmp (string replace -r '^'"$realhome"'($|/)' '~$1' $PWD)
end
# Truncate the path to have a limited number of dirs
set dir (__sf_util_truncate_dir $tmp $SPACEFISH_DIR_TRUNC)
if [ $SPACEFISH_DIR_LOCK_SHOW = true -a ! -w . ]
set DIR_LOCK_SYMBOL (set_color $SPACEFISH_DIR_LOCK_COLOR)" $SPACEFISH_DIR_LOCK_SYMBOL"(set_color --bold)
end
__sf_lib_section \
$SPACEFISH_DIR_COLOR \
$SPACEFISH_DIR_PREFIX \
$dir \
"$DIR_LOCK_SYMBOL""$SPACEFISH_DIR_SUFFIX"
end
|