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 | |
parent | 1609a505e6a6ee2730c8ad15d145335f81204bb1 (diff) | |
download | bfs-2e10b1d55bccbbe3de811df91a70772978e76abf.tar.xz |
tests: Add utilities for comparing colors to ls
-rwxr-xr-x | tests.sh | 2 | ||||
-rwxr-xr-x | tests/find-color.sh | 44 | ||||
-rwxr-xr-x | tests/ls-color.sh | 48 |
3 files changed, 93 insertions, 1 deletions
@@ -2,7 +2,7 @@ ############################################################################ # bfs # -# Copyright (C) 2015-2018 Tavian Barnes <tavianator@tavianator.com> # +# Copyright (C) 2015-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. # diff --git a/tests/find-color.sh b/tests/find-color.sh new file mode 100755 index 0000000..6ae6eba --- /dev/null +++ b/tests/find-color.sh @@ -0,0 +1,44 @@ +#!/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. # +############################################################################ + +set -e + +L= +COLOR= +ARGS=() +for ARG; do + case "$ARG" in + -L) + L="$ARG" + ;; + -color) + COLOR=y + ;; + *) + ARGS+=("$ARG") + ;; + esac +done + +LS_COLOR="${BASH_SOURCE%/*}/ls-color.sh" + +if [ "$COLOR" ]; then + find "${ARGS[@]}" -exec "$LS_COLOR" $L {} \; +else + find "${ARGS[@]}" +fi 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 |