Update zsh-syntax-highlighting plugin
[zsh.git] / .zsh / zsh-syntax-highlighting / tests / tap-colorizer.zsh
1 #!/usr/bin/env zsh
2 # -------------------------------------------------------------------------------------------------
3 # Copyright (c) 2015, 2017 zsh-syntax-highlighting contributors
4 # All rights reserved.
5 #
6 # Redistribution and use in source and binary forms, with or without modification, are permitted
7 # provided that the following conditions are met:
8 #
9 # * Redistributions of source code must retain the above copyright notice, this list of conditions
10 # and the following disclaimer.
11 # * Redistributions in binary form must reproduce the above copyright notice, this list of
12 # conditions and the following disclaimer in the documentation and/or other materials provided
13 # with the distribution.
14 # * Neither the name of the zsh-syntax-highlighting contributors nor the names of its contributors
15 # may be used to endorse or promote products derived from this software without specific prior
16 # written permission.
17 #
18 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
19 # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
20 # FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
21 # CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22 # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
24 # IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
25 # OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 # -------------------------------------------------------------------------------------------------
27 # -*- mode: zsh; sh-indentation: 2; indent-tabs-mode: nil; sh-basic-offset: 2; -*-
28 # vim: ft=zsh sw=2 ts=2 et
29 # -------------------------------------------------------------------------------------------------
30
31 # This is a stdin-to-stdout filter that takes TAP output (such as 'make test')
32 # on stdin and passes it, colorized, to stdout.
33
34 emulate -LR zsh
35
36 if [[ ! -t 1 ]] ; then
37 exec cat
38 fi
39
40 while read -r line;
41 do
42 case $line in
43 # comment (filename header) or plan
44 (#* | <->..<->)
45 print -nP %F{blue}
46 ;;
47 # SKIP
48 (*# SKIP*)
49 print -nP %F{yellow}
50 ;;
51 # XPASS
52 (ok*# TODO*)
53 print -nP %F{red}
54 ;;
55 # XFAIL
56 (not ok*# TODO*)
57 print -nP %F{yellow}
58 ;;
59 # FAIL
60 (not ok*)
61 print -nP %F{red}
62 ;;
63 # PASS
64 (ok*)
65 print -nP %F{green}
66 ;;
67 esac
68 print -nr - "$line"
69 print -nP %f
70 echo "" # newline
71 done