diff --git a/highbeam b/highbeam index 24527ed..8bdbca2 100755 --- a/highbeam +++ b/highbeam @@ -15,6 +15,10 @@ RULES=( "q.\{0,3\}r" "$H$Y" # q*r with maximum 3 characters in between. color bright yellow ) -------------------- +Rules can be also exressed as comma separated list variable: +export HB_RULES='\''[0-9],$C,g,$Y'\'' + HB_RULES are appended to other rules + Color variables: $R $G $B $Y $M $C $W $BLACK Modify to bright version by prefixing with $H (e.g. $H$G) Background colors: $BGR $BGG $BGB $BGY $BGC $BGM $BGW @@ -53,6 +57,7 @@ BGM="${E}45m" BGC="${E}46m" BGW="${E}47m" + CONF_FILE=~/.highbeamrc CONF_LINE="" FLAGS="ig" @@ -76,11 +81,13 @@ done [[ -z "$CONF_LINE" ]] && { # user rules: - [[ -e "${CONF_FILE}" ]] && . "${CONF_FILE}" || { - echo You may have wrong format in "${CONF_FILE}" >&2 - usage >&2 - exit 1 - } + [[ -e "${CONF_FILE}" ]] && { + . "${CONF_FILE}" || { + echo You may have wrong format in "${CONF_FILE}" >&2 + usage >&2 + exit 1 + } + } for (( r=0; r<${#RULES[@]}; r++ )); do REGEX="$REGEX -e 's/\(${RULES[$r]}\)/${RULES[$(( $r + 1 ))]}\1${Z}/${FLAGS}'" r=$(( $r + 1 )) @@ -92,8 +99,22 @@ done r=$(( $r + 1 )) done } -eval sed $REGEX || echo Maybe errors in your rules: "$REGEX" >&2 - +# env variable fed rules +[[ -z "$HB_RULES" ]] || { + CONF_ENV=( $( eval echo "$HB_RULES" ) ) + for (( r=0; r<${#CONF_ENV[@]}; r++ )); + do REGEX="$REGEX -e 's/\(${CONF_ENV[$r]}\)/${CONF_ENV[$(( $r + 1 ))]}\1${Z}/${FLAGS}'" + r=$(( $r + 1 )) + done +} +#~ echo ${CONF_ENV[@]} +#~ echo $HB_RULES +#~ echo $REGEX +[[ -z "$REGEX" ]] && { + cat - +} || { + eval sed $REGEX || echo Maybe errors in your rules: "$REGEX" >&2 +}