#!/usr/bin/env bash # Prowler - the handy cloud security tool (copyright 2018) by Toni de la Fuente # # Licensed under the Apache License, Version 2.0 (the "License"); you may not # use this file except in compliance with the License. You may obtain a copy # of the License at http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software distributed # under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR # CONDITIONS OF ANY KIND, either express or implied. See the License for the # specific language governing permissions and limitations under the License. IFS=',' read -ra MODES <<< "${MODE}" for MODE in "${MODES[@]}"; do if [[ "$MODE" != "mono" && "$MODE" != "text" && "$MODE" != "csv" && "$MODE" != "json" && "$MODE" != "json-asff" && "$MODE" != "junit-xml" && "$MODE" != "html" ]]; then echo -e "${OPTRED}ERROR!$OPTNORMAL Invalid output mode. Choose text, mono, csv, json, json-asff, junit-xml or html. ./prowler -h for help" EXITCODE=1 exit $EXITCODE fi if [[ "$MODE" == "mono" || "$MODE" == "csv" || "$MODE" == "json" || "$MODE" == "json-asff" ]]; then MONOCHROME=1 fi done if [[ $MONOCHROME -eq 1 ]]; then # Colors NORMAL='' WARNING='' # Bad (red) SECTION='' # Section (yellow) NOTICE='' # Notice (yellow) OK='' # Ok (green) BAD='' # Bad (red) CYAN='' BLUE='' BROWN='' DARKGRAY='' GRAY='' GREEN='' MAGENTA='' PURPLE='' RED='' YELLOW='' WHITE='' else # Colors # NOTE: Your editor may NOT show the 0x1b / escape character left of the '[' NORMAL="" WARNING="" # Warning (brown) SECTION="" # Section (yellow) NOTICE="" # Notice (yellow) OK="" # Ok (green) BAD="" # Bad (red) CYAN="" BLUE="" BROWN="" DARKGRAY="" GRAY="" GREEN="" MAGENTA="" PURPLE="" RED="" YELLOW="" WHITE="" fi printColorsCode(){ if [[ $MONOCHROME -eq 0 ]]; then echo -e "\n$NORMAL Colors code for results: " echo -e "$NOTICE INFO (Information)$NORMAL,$OK PASS (Recommended value)$NORMAL, $WARNING WARNING (Ignored by whitelist)$NORMAL, $BAD FAIL (Fix required)$NORMAL, $PURPLE Not Scored $NORMAL" fi }