42 lines
792 B
Bash
42 lines
792 B
Bash
#!/bin/zsh
|
|
|
|
function felix_pwd_abbr {
|
|
base_pwd=$PWD
|
|
tilda_notation=${base_pwd//$HOME/\~}
|
|
pwd_list=(${(s:/:)tilda_notation})
|
|
list_len=${#pwd_list}
|
|
|
|
if [[ $list_len -le 1 ]]; then
|
|
echo $tilda_notation
|
|
return
|
|
fi
|
|
|
|
if [[ ${pwd_list[1]} != '~' ]]; then
|
|
formed_pwd='/'
|
|
fi
|
|
|
|
firstchar=$(echo ${pwd_list[1]} | cut -c1)
|
|
if [[ $firstchar == '.' ]] ; then
|
|
firstchar=$(echo ${pwd_list[1]} | cut -c1,2)
|
|
fi
|
|
|
|
formed_pwd=${formed_pwd}$firstchar
|
|
|
|
for ((i=2; i <= $list_len; i++)) do
|
|
if [[ $i != ${list_len} ]]; then
|
|
|
|
firstchar=$(echo ${pwd_list[$i]} | cut -c1)
|
|
if [[ $firstchar == '.' ]] ; then
|
|
firstchar=$(echo ${pwd_list[$i]} | cut -c1,2)
|
|
fi
|
|
|
|
formed_pwd=${formed_pwd}/$firstchar
|
|
else
|
|
formed_pwd=${formed_pwd}/${pwd_list[$i]}
|
|
fi
|
|
done
|
|
|
|
echo $formed_pwd
|
|
return
|
|
}
|