summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorTavian Barnes <tavianator@tavianator.com>2019-03-19 00:42:32 -0400
committerTavian Barnes <tavianator@tavianator.com>2019-03-19 00:43:35 -0400
commit2e10b1d55bccbbe3de811df91a70772978e76abf (patch)
tree3c2af5b9482a6ccc7c083bb6037cfccce39c1c57 /tests
parent1609a505e6a6ee2730c8ad15d145335f81204bb1 (diff)
downloadbfs-2e10b1d55bccbbe3de811df91a70772978e76abf.tar.xz
tests: Add utilities for comparing colors to ls
Diffstat (limited to 'tests')
-rwxr-xr-xtests/find-color.sh44
-rwxr-xr-xtests/ls-color.sh48
2 files changed, 92 insertions, 0 deletions
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