Skip to content

Commit d18e46c

Browse files
committed
Add option to output absolute paths
Switching to relative paths by default. For human readable output the prefix just takes up terminal space.
1 parent 81b769d commit d18e46c

1 file changed

Lines changed: 14 additions & 4 deletions

File tree

bin/pyenv-users

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@
44
#
55
# Usage: pyenv users [-r|--raw] [directory]
66
#
7-
# -r/--raw Raw output strings as "<version>:<venv-path>"
7+
# -A/--absolute-paths Output absolute paths instead of relative paths
8+
# -r/--raw Raw output strings as "<version>:<venv-path>"
89
#
910
# Scans [directory] for virtual environments whose `python` commands
1011
# are symlinks back into a pyenv version. Default: current directory.
@@ -35,10 +36,13 @@ parse_options() {
3536
done
3637
}
3738

38-
unset RAW
39+
unset ABSOLUTE RAW
3940
parse_options "$@"
4041
for option in "${OPTIONS[@]}"; do
4142
case "$option" in
43+
"A" | "absolute-paths" )
44+
ABSOLUTE=1
45+
;;
4246
"r" | "raw" )
4347
RAW=1
4448
;;
@@ -61,6 +65,12 @@ else
6165
echo "pyenv-users: too many directory arguments"
6266
exit 1
6367
fi
68+
if [ -n "$ABSOLUTE" ]; then
69+
PREFIX=""
70+
else
71+
PREFIX="$DIR/"
72+
fi
73+
6474

6575
# ----------------------------------------------------------------------------
6676
# Finished parsing the arguments. Begin the actual functionality.
@@ -104,8 +114,8 @@ for (( k=0; k < K; k++ )); do
104114
done
105115
for (( k=0; k < K; k++ )); do
106116
if [ -n "$RAW" ]; then
107-
echo "${versions[$k]}":"${venvs[$k]}"
117+
echo "${versions[$k]}":"${venvs[$k]#$PREFIX}"
108118
else
109-
printf "%-*s %s\n" "$maxwidth" "${versions[$k]}" "${venvs[k]}"
119+
printf "%-*s %s\n" "$maxwidth" "${versions[$k]}" "${venvs[k]#$PREFIX}"
110120
fi
111121
done | sort

0 commit comments

Comments
 (0)