diff options
author | Tavian Barnes <tavianator@tavianator.com> | 2019-03-19 00:42:32 -0400 |
---|---|---|
committer | Tavian Barnes <tavianator@tavianator.com> | 2019-03-19 00:43:35 -0400 |
commit | 2e10b1d55bccbbe3de811df91a70772978e76abf (patch) | |
tree | 3c2af5b9482a6ccc7c083bb6037cfccce39c1c57 /tests/ls-color.sh | |
parent | 1609a505e6a6ee2730c8ad15d145335f81204bb1 (diff) | |
download | bfs-2e10b1d55bccbbe3de811df91a70772978e76abf.tar.xz |
tests: Add utilities for comparing colors to ls
Diffstat (limited to 'tests/ls-color.sh')
-rwxr-xr-x | tests/ls-color.sh | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/tests/ls-color.sh b/tests/ls-color.sh new file mode 100755 index 0000000..e8cf038 --- /dev/null +++ b/tests/ls-color.sh @@ -0,0 +1,48 @@ +#!/bin/bash + +############################################################################ +# bfs # +# Copyright (C) 2019 Tavian Barnes <tavianator@tavianator.com> # +# # +# Permission to use, copy, modify, and/or distribute this software for any # +# purpose with or without fee is hereby granted. # +# # +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES # +# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF # +# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR # +# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES # +# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN # +# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF # +# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. # +############################################################################ + +# Prints the "ground truth" coloring of a path using ls + +set -e + +L= +if [ "$1" = "-L" ]; then + L="$1" + shift +fi + +function ls_color() { + # Strip the leading reset sequence from the ls output + ls -1d --color "$@" | sed $'s/^\033\\[0m//' +} + +DIR="${1%/*}" +if [ "$DIR" = "$1" ]; then + ls_color "$1" + exit +fi + +BASE="${1##*/}" + +ls_color $L "$DIR/" | tr -d '\n' + +if [ -e "$1" ]; then + (cd "$DIR" && ls_color $L "$BASE") +else + (cd "$DIR" && ls_color "$BASE") +fi |