diff options
author | Kurtis Rader <krader@skepticism.us> | 2016-04-13 17:14:50 -0700 |
---|---|---|
committer | Kurtis Rader <krader@skepticism.us> | 2016-04-28 16:03:27 -0700 |
commit | 6c329e8a839c1b5eeaf2e545b4f4084c3a8830f7 (patch) | |
tree | 65597d006e0cd94e9f74b95b67c75451b2daecd8 /share/functions | |
parent | 5fa8370c133738aa21a3b4a7d3a89f9188068498 (diff) |
provide a realpath implementation
Not all distros have a `realpath` command. Provide a function that uses the
real command if available else use the fish builtin.
Fixes #2932
Diffstat (limited to 'share/functions')
-rw-r--r-- | share/functions/realpath.fish | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/share/functions/realpath.fish b/share/functions/realpath.fish new file mode 100644 index 00000000..3d33ae0f --- /dev/null +++ b/share/functions/realpath.fish @@ -0,0 +1,13 @@ +# Provide a minimalist realpath implementation to help deal with platforms that may not provide it +# as a command. If a realpath command is available simply pass all arguments thru to it. If not +# fallback to alternative solutions. + +# The following is slightly subtle. The first time `realpath` is invoked this script will be read. +# If we see that there is an external command by that name we just return. That will cause fish to +# run the external command. On the other hand, if an external command isn't found we define a +# function that will provide fallback behavior. +if not type -q -P realpath + function realpath --description 'fallback realpath implementation' + builtin fish_realpath $argv[-1] + end +end |