mirror of
https://github.com/eth-p/bat-extras.git
synced 2025-01-19 11:58:11 +01:00
Merge pull request #15 from VeryTastyTomato/master
Fix most of warnings reported by ShellCheck and format files
This commit is contained in:
commit
4e9ff8a4fa
@ -12,22 +12,22 @@ commands:
|
||||
description: "Set up the environment needed to test and run the scripts."
|
||||
steps:
|
||||
- run:
|
||||
name: "APK: Add repository."
|
||||
command: |
|
||||
printf "\n%s\n" "http://nl.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories
|
||||
printf "\n%s\n" "http://nl.alpinelinux.org/alpine/edge/community" >> /etc/apk/repositories
|
||||
name: "APK: Add repository."
|
||||
command: |
|
||||
printf "\n%s\n" "http://nl.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories
|
||||
printf "\n%s\n" "http://nl.alpinelinux.org/alpine/edge/community" >> /etc/apk/repositories
|
||||
- run:
|
||||
name: "APK: Update cache."
|
||||
command: apk update
|
||||
name: "APK: Update cache."
|
||||
command: apk update
|
||||
- run:
|
||||
name: "Setup: Install build packages."
|
||||
command: apk add git bash python2 diffutils ca-certificates curl shfmt
|
||||
name: "Setup: Install build packages."
|
||||
command: apk add git bash python2 diffutils ca-certificates curl shfmt
|
||||
- run:
|
||||
name: "Setup: Install test packages."
|
||||
command: apk add util-linux coreutils
|
||||
name: "Setup: Install test packages."
|
||||
command: apk add util-linux coreutils
|
||||
- run:
|
||||
name: "Setup: Install runtime packages."
|
||||
command: apk add bat ripgrep ncurses
|
||||
name: "Setup: Install runtime packages."
|
||||
command: apk add bat ripgrep ncurses
|
||||
|
||||
build:
|
||||
description: "Build the self-contained scripts."
|
||||
@ -37,9 +37,8 @@ commands:
|
||||
default: "lib"
|
||||
steps:
|
||||
- run:
|
||||
name: "Build"
|
||||
command: ./build.sh --minify=<<parameters.minify>> --no-verify
|
||||
|
||||
name: "Build"
|
||||
command: ./build.sh --minify=<<parameters.minify>> --no-verify
|
||||
|
||||
jobs:
|
||||
build:
|
||||
@ -48,9 +47,9 @@ jobs:
|
||||
- setup
|
||||
- checkout
|
||||
- build:
|
||||
minify: "all"
|
||||
minify: "all"
|
||||
- store_artifacts:
|
||||
path: bin
|
||||
path: bin
|
||||
|
||||
test:
|
||||
executor: linux_alpine
|
||||
@ -58,10 +57,10 @@ jobs:
|
||||
- setup
|
||||
- checkout
|
||||
- build:
|
||||
minify: "all"
|
||||
minify: "all"
|
||||
- run:
|
||||
name: "Test: Unit Tests / Snapshots"
|
||||
command: ./test.sh --verbose --snapshot:show
|
||||
name: "Test: Unit Tests / Snapshots"
|
||||
command: ./test.sh --verbose --snapshot:show
|
||||
|
||||
test-consistency:
|
||||
executor: linux_alpine
|
||||
@ -69,10 +68,10 @@ jobs:
|
||||
- setup
|
||||
- checkout
|
||||
- build:
|
||||
minify: "all"
|
||||
minify: "all"
|
||||
- run:
|
||||
name: "Test: Consistency"
|
||||
command: ./test.sh --compiled --verbose --snapshot:show
|
||||
name: "Test: Consistency"
|
||||
command: ./test.sh --compiled --verbose --snapshot:show
|
||||
|
||||
test-symlink:
|
||||
executor: linux_alpine
|
||||
@ -80,11 +79,11 @@ jobs:
|
||||
- setup
|
||||
- checkout
|
||||
- run:
|
||||
name: "Symlink"
|
||||
command: ln -s "$PWD/src/batgrep.sh" /tmp/batgrep
|
||||
name: "Symlink"
|
||||
command: ln -s "$PWD/src/batgrep.sh" /tmp/batgrep
|
||||
- run:
|
||||
name: "Test: Symlink"
|
||||
command: /tmp/batgrep 'a' >/dev/null
|
||||
name: "Test: Symlink"
|
||||
command: /tmp/batgrep 'a' >/dev/null
|
||||
|
||||
workflows:
|
||||
version: 2
|
||||
@ -92,9 +91,8 @@ workflows:
|
||||
jobs:
|
||||
- build
|
||||
- test:
|
||||
requires: [build]
|
||||
requires: [build]
|
||||
- test-consistency:
|
||||
requires: [build, test]
|
||||
requires: [build, test]
|
||||
- test-symlink:
|
||||
requires: [build]
|
||||
|
||||
requires: [build]
|
||||
|
1
.gitignore
vendored
1
.gitignore
vendored
@ -10,4 +10,3 @@
|
||||
/.circleci/.config.yml
|
||||
.download
|
||||
bin
|
||||
|
||||
|
5
.gitmodules
vendored
5
.gitmodules
vendored
@ -1,4 +1,3 @@
|
||||
[submodule "best"]
|
||||
path = .test-framework
|
||||
url = https://github.com/eth-p/best.git
|
||||
|
||||
path = .test-framework
|
||||
url = https://github.com/eth-p/best.git
|
||||
|
54
build.sh
54
build.sh
@ -33,8 +33,8 @@ next() {
|
||||
# Prints a build step message.
|
||||
smsg() {
|
||||
case "$2" in
|
||||
"SKIP") printc " %{YELLOW} %{DIM}%s [skipped]%{CLEAR}\n" "$1" 1>&2;;
|
||||
*) printc " %{YELLOW} %s...%{CLEAR}\n" "$1" 1>&2;;
|
||||
"SKIP") printc " %{YELLOW} %{DIM}%s [skipped]%{CLEAR}\n" "$1" 1>&2 ;;
|
||||
*) printc " %{YELLOW} %s...%{CLEAR}\n" "$1" 1>&2 ;;
|
||||
esac
|
||||
}
|
||||
|
||||
@ -63,6 +63,7 @@ step_read() {
|
||||
# The processed file contents.
|
||||
step_preprocess() {
|
||||
local line
|
||||
local docvar
|
||||
while IFS='' read -r line; do
|
||||
# Skip certain lines.
|
||||
[[ "$line" =~ ^LIB=.*$ ]] && continue
|
||||
@ -75,7 +76,7 @@ step_preprocess() {
|
||||
|
||||
# Replace the DOCS_* variables.
|
||||
if [[ "$line" =~ ^DOCS_[A-Z]+=.*$ ]]; then
|
||||
local docvar="$(cut -d'=' -f1 <<< "$line")"
|
||||
docvar="$(cut -d'=' -f1 <<<"$line")"
|
||||
printf "%s=%q\n" "$docvar" "${!docvar}"
|
||||
continue
|
||||
fi
|
||||
@ -83,13 +84,13 @@ step_preprocess() {
|
||||
# Embed library scripts.
|
||||
if [[ "$line" =~ ^[[:space:]]*source[[:space:]]+[\"\']\$\{?LIB\}/([a-z_-]+\.sh)[\"\'] ]]; then
|
||||
echo "# --- BEGIN LIBRARY FILE: ${BASH_REMATCH[1]} ---"
|
||||
cat "$LIB/${BASH_REMATCH[1]}" | {
|
||||
{
|
||||
if [[ "$OPT_MINIFY" = "lib" ]]; then
|
||||
pp_strip_comments | pp_minify | pp_minify_unsafe
|
||||
else
|
||||
cat
|
||||
fi
|
||||
}
|
||||
} <"$LIB/${BASH_REMATCH[1]}"
|
||||
echo "# --- END LIBRARY FILE ---"
|
||||
continue
|
||||
fi
|
||||
@ -136,12 +137,13 @@ step_compress() {
|
||||
return 0
|
||||
fi
|
||||
|
||||
local wrapper="$({
|
||||
local wrapper
|
||||
wrapper="$({
|
||||
printf '#!/usr/bin/env bash\n'
|
||||
printf "(exec -a \"\$0\" bash -c 'eval \"\$(cat <&3)\"' \"\$0\" \"\$@\" 3< <(dd bs=1 if=\"\$0\" skip=::: 2>/dev/null | gunzip)); exit \$?;\n"
|
||||
})"
|
||||
|
||||
sed "s/:::/$(wc -c <<< "$wrapper" | bc)/" <<< "$wrapper"
|
||||
echo "${wrapper/:::/$(wc -c <<<"$wrapper" | sed 's/^[[:space:]]*//')}"
|
||||
gzip
|
||||
smsg "Compressing"
|
||||
}
|
||||
@ -232,18 +234,21 @@ DOCS_URL="https://github.com/eth-p/bat-extras/blob/master/doc"
|
||||
DOCS_MAINTAINER="eth-p <eth-p@hidden.email>"
|
||||
|
||||
while shiftopt; do
|
||||
# shellcheck disable=SC2034
|
||||
case "$OPT" in
|
||||
--install) OPT_INSTALL=true;;
|
||||
--compress) OPT_COMPRESS=true;;
|
||||
--prefix) shiftval; OPT_PREFIX="$OPT_VAL";;
|
||||
--alternate-executable) shiftval; OPT_BAT="$OPT_VAL";;
|
||||
--minify) shiftval; OPT_MINIFY="$OPT_VAL";;
|
||||
--no-verify) shiftval; OPT_VERIFY=false;;
|
||||
--docs:url) shiftval; DOCS_URL="$OPT_VAL";;
|
||||
--docs:maintainer) shiftval; DOCS_MAINTAINER="$OPT_VAL";;
|
||||
--install) OPT_INSTALL=true ;;
|
||||
--compress) OPT_COMPRESS=true ;;
|
||||
--prefix) shiftval; OPT_PREFIX="$OPT_VAL" ;;
|
||||
--alternate-executable) shiftval; OPT_BAT="$OPT_VAL" ;;
|
||||
--minify) shiftval; OPT_MINIFY="$OPT_VAL" ;;
|
||||
--no-verify) shiftval; OPT_VERIFY=false ;;
|
||||
--docs:url) shiftval; DOCS_URL="$OPT_VAL" ;;
|
||||
--docs:maintainer) shiftval; DOCS_MAINTAINER="$OPT_VAL" ;;
|
||||
|
||||
*) printc "%{RED}%s: unknown option '%s'%{CLEAR}" "$PROGRAM" "$OPT";
|
||||
exit 1;;
|
||||
*)
|
||||
printc "%{RED}%s: unknown option '%s'%{CLEAR}" "$PROGRAM" "$OPT"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
@ -290,17 +295,17 @@ printc "%{YELLOW}Building scripts...%{CLEAR}\n" 1>&2
|
||||
file_i=0
|
||||
file_n="${#SOURCES[@]}"
|
||||
for file in "${SOURCES[@]}"; do
|
||||
((file_i++)) || true;
|
||||
((file_i++)) || true
|
||||
|
||||
filename="$(basename "$file" .sh)"
|
||||
|
||||
printc " %{YELLOW}[%s/%s] %{MAGENTA}%s%{CLEAR}\n" "$file_i" "$file_n" "$file" 1>&2
|
||||
step_read "$file" |\
|
||||
next step_preprocess |\
|
||||
next step_minify |\
|
||||
next step_compress |\
|
||||
next step_write "${BIN}/${filename}" |\
|
||||
next step_write_install "${OPT_PREFIX}/bin/${filename}" |\
|
||||
step_read "$file" |
|
||||
next step_preprocess |
|
||||
next step_minify |
|
||||
next step_compress |
|
||||
next step_write "${BIN}/${filename}" |
|
||||
next step_write_install "${OPT_PREFIX}/bin/${filename}" |
|
||||
cat >/dev/null
|
||||
done
|
||||
|
||||
@ -312,4 +317,3 @@ if "$OPT_VERIFY"; then
|
||||
"${HERE}/test.sh" --compiled
|
||||
exit $?
|
||||
fi
|
||||
|
||||
|
@ -53,7 +53,6 @@ shiftopt() {
|
||||
fi
|
||||
done
|
||||
|
||||
# Return.
|
||||
return 0
|
||||
}
|
||||
|
||||
@ -81,7 +80,5 @@ shiftval() {
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
setargs "$@"
|
||||
|
||||
|
@ -6,13 +6,12 @@
|
||||
# Issues: https://github.com/eth-p/bat-extras/issues
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Hooks:
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
# Option parser hook: color support.
|
||||
# This will accept --no-color, or --color.
|
||||
# This will accept --no-color or --color.
|
||||
# It will also try to accept --color=never|always|auto.
|
||||
#
|
||||
# The variable OPT_COLOR will be set depending on whether or not a TTY is
|
||||
@ -21,17 +20,22 @@ hook_color() {
|
||||
SHIFTOPT_HOOKS+=("__shiftopt_hook__color")
|
||||
__shiftopt_hook__color() {
|
||||
case "$OPT" in
|
||||
--no-color) OPT_COLOR=false; printc_init "$OPT_COLOR";;
|
||||
--color) {
|
||||
case "$OPT_VAL" in
|
||||
auto) :;;
|
||||
always|true) OPT_COLOR=true; printc_init "$OPT_COLOR";;
|
||||
never|false) OPT_COLOR=false; printc_init "$OPT_COLOR";;
|
||||
esac
|
||||
};;
|
||||
|
||||
*) return 1;;
|
||||
--no-color) OPT_COLOR=false ;;
|
||||
--color) {
|
||||
case "$OPT_VAL" in
|
||||
always | true) OPT_COLOR=true ;;
|
||||
never | false) OPT_COLOR=false ;;
|
||||
|
||||
auto) return 0 ;;
|
||||
esac
|
||||
} ;;
|
||||
|
||||
*) return 1 ;;
|
||||
esac
|
||||
|
||||
printc_init "$OPT_COLOR"
|
||||
return 0
|
||||
}
|
||||
|
||||
# Default color support.
|
||||
@ -51,25 +55,32 @@ hook_pager() {
|
||||
SHIFTOPT_HOOKS+=("__shiftopt_hook__pager")
|
||||
__shiftopt_hook__pager() {
|
||||
case "$OPT" in
|
||||
# Specify paging.
|
||||
--no-pager) shiftval; SCRIPT_PAGER_CMD='';;
|
||||
--paging) shiftval; {
|
||||
case "$OPT_VAL" in
|
||||
auto) :;;
|
||||
never) SCRIPT_PAGER_CMD='';;
|
||||
always) :;;
|
||||
esac
|
||||
};;
|
||||
|
||||
# Specify the pager.
|
||||
--pager) {
|
||||
shiftval;
|
||||
SCRIPT_PAGER_CMD=($OPT_VAL);
|
||||
# Specify paging.
|
||||
--no-pager) shiftval; SCRIPT_PAGER_CMD='' ;;
|
||||
--paging) {
|
||||
shiftval
|
||||
|
||||
case "$OPT_VAL" in
|
||||
auto) : ;;
|
||||
always) : ;;
|
||||
never) SCRIPT_PAGER_CMD='' ;;
|
||||
esac
|
||||
} ;;
|
||||
|
||||
# Specify the pager.
|
||||
--pager) {
|
||||
shiftval
|
||||
|
||||
# [note]: These are both intentional.
|
||||
# shellcheck disable=SC2034 disable=SC2206
|
||||
{
|
||||
SCRIPT_PAGER_CMD=($OPT_VAL)
|
||||
PAGER_ARGS=()
|
||||
};;
|
||||
}
|
||||
} ;;
|
||||
|
||||
*) return 1;;
|
||||
*) return 1 ;;
|
||||
esac
|
||||
}
|
||||
}
|
||||
|
||||
|
16
lib/pager.sh
16
lib/pager.sh
@ -6,13 +6,13 @@
|
||||
# Issues: https://github.com/eth-p/bat-extras/issues
|
||||
# -----------------------------------------------------------------------------
|
||||
|
||||
# Returns 0 (true) if the current pager is less, otherwise 1 (false)
|
||||
# Returns 0 (true) if the current pager is less, otherwise 1 (false).
|
||||
is_pager_less() {
|
||||
[[ "$(pager_name)" = "less" ]]
|
||||
return $?
|
||||
}
|
||||
|
||||
# Returns 0 (true) if the current pager is disabled, otherwise 1 (false)
|
||||
# Returns 0 (true) if the current pager is disabled, otherwise 1 (false).
|
||||
is_pager_disabled() {
|
||||
[[ -z "$(pager_name)" ]]
|
||||
return $?
|
||||
@ -22,9 +22,10 @@ is_pager_disabled() {
|
||||
pager_name() {
|
||||
if [[ -z "${SCRIPT_PAGER_CMD[0]}" ]]; then return; fi
|
||||
if [[ -z "$_SCRIPT_PAGER_NAME" ]]; then
|
||||
local output="$("${SCRIPT_PAGER_CMD[0]}" --version 2>&1)"
|
||||
local output
|
||||
output="$("${SCRIPT_PAGER_CMD[0]}" --version 2>&1)"
|
||||
|
||||
if head -n 1 <<< "$output" | grep '^less \d' &>/dev/null; then
|
||||
if head -n 1 <<<"$output" | grep '^less \d' &>/dev/null; then
|
||||
_SCRIPT_PAGER_NAME="less"
|
||||
else
|
||||
_SCRIPT_PAGER_NAME="$(basename "${SCRIPT_PAGER_CMD[0]}")"
|
||||
@ -34,7 +35,7 @@ pager_name() {
|
||||
echo "$_SCRIPT_PAGER_NAME"
|
||||
}
|
||||
|
||||
# Executes a command or function, and pipes its output to the pager (if exists).
|
||||
# Executes a command or function, and pipes its output to the pager (if it exists).
|
||||
#
|
||||
# Returns: The exit code of the command.
|
||||
# Example:
|
||||
@ -51,7 +52,7 @@ pager_exec() {
|
||||
fi
|
||||
}
|
||||
|
||||
# Displays the output of a command or function inside the pager (if exists).
|
||||
# Displays the output of a command or function inside the pager (if it exists).
|
||||
#
|
||||
# Example:
|
||||
# bat | pager_display
|
||||
@ -76,6 +77,8 @@ fi
|
||||
|
||||
# Prefer the bat pager.
|
||||
if [[ -n "${BAT_PAGER+x}" ]]; then
|
||||
# [note]: This is intentional.
|
||||
# shellcheck disable=SC2206
|
||||
SCRIPT_PAGER_CMD=($BAT_PAGER)
|
||||
SCRIPT_PAGER_ARGS=()
|
||||
fi
|
||||
@ -85,4 +88,3 @@ if ! [[ -t 1 ]]; then
|
||||
SCRIPT_PAGER_CMD=()
|
||||
SCRIPT_PAGER_ARGS=()
|
||||
fi
|
||||
|
||||
|
55
lib/print.sh
55
lib/print.sh
@ -13,7 +13,7 @@
|
||||
# printc "%{RED}This is red %s.%{CLEAR}\n" "text"
|
||||
#
|
||||
printc() {
|
||||
printf "$(sed "$_PRINTC_PATTERN" <<< "$1")" "${@:2}"
|
||||
printf "$(sed "$_PRINTC_PATTERN" <<<"$1")" "${@:2}"
|
||||
}
|
||||
|
||||
# Initializes the color tags for printc.
|
||||
@ -23,36 +23,36 @@ printc() {
|
||||
# false -- Turns off color output.
|
||||
printc_init() {
|
||||
case "$1" in
|
||||
true) _PRINTC_PATTERN="$_PRINTC_PATTERN_ANSI";;
|
||||
false) _PRINTC_PATTERN="$_PRINTC_PATTERN_PLAIN";;
|
||||
true) _PRINTC_PATTERN="$_PRINTC_PATTERN_ANSI" ;;
|
||||
false) _PRINTC_PATTERN="$_PRINTC_PATTERN_PLAIN" ;;
|
||||
|
||||
"") {
|
||||
_PRINTC_PATTERN_ANSI=""
|
||||
_PRINTC_PATTERN_PLAIN=""
|
||||
"[DEFINE]") {
|
||||
_PRINTC_PATTERN_ANSI=""
|
||||
_PRINTC_PATTERN_PLAIN=""
|
||||
|
||||
local name
|
||||
local ansi
|
||||
while read -r name ansi; do
|
||||
if [[ -z "${name}" && -z "${ansi}" ]] || [[ "${name:0:1}" = "#" ]]; then
|
||||
continue
|
||||
fi
|
||||
|
||||
ansi="$(sed 's/\\/\\\\/' <<< "$ansi")"
|
||||
|
||||
_PRINTC_PATTERN_PLAIN="${_PRINTC_PATTERN_PLAIN}s/%{${name}}//g;"
|
||||
_PRINTC_PATTERN_ANSI="${_PRINTC_PATTERN_ANSI}s/%{${name}}/${ansi}/g;"
|
||||
done
|
||||
|
||||
if [ -t 1 ]; then
|
||||
_PRINTC_PATTERN="$_PRINTC_PATTERN_ANSI"
|
||||
else
|
||||
_PRINTC_PATTERN="$_PRINTC_PATTERN_PLAIN"
|
||||
local name
|
||||
local ansi
|
||||
while read -r name ansi; do
|
||||
if [[ -z "${name}" && -z "${ansi}" ]] || [[ "${name:0:1}" = "#" ]]; then
|
||||
continue
|
||||
fi
|
||||
};;
|
||||
|
||||
ansi="${ansi/\\/\\\\}"
|
||||
|
||||
_PRINTC_PATTERN_PLAIN="${_PRINTC_PATTERN_PLAIN}s/%{${name}}//g;"
|
||||
_PRINTC_PATTERN_ANSI="${_PRINTC_PATTERN_ANSI}s/%{${name}}/${ansi}/g;"
|
||||
done
|
||||
|
||||
if [ -t 1 ]; then
|
||||
_PRINTC_PATTERN="$_PRINTC_PATTERN_ANSI"
|
||||
else
|
||||
_PRINTC_PATTERN="$_PRINTC_PATTERN_PLAIN"
|
||||
fi
|
||||
} ;;
|
||||
esac
|
||||
}
|
||||
|
||||
# Print a warning message to STDERR.
|
||||
# Print a warning message to stderr.
|
||||
# Arguments:
|
||||
# 1 -- The printc formatting string.
|
||||
# ... -- The printc formatting arguments.
|
||||
@ -60,7 +60,7 @@ print_warning() {
|
||||
printc "%{YELLOW}[%s warning]%{CLEAR}: $1%{CLEAR}\n" "$PROGRAM" "${@:2}" 1>&2
|
||||
}
|
||||
|
||||
# Print an error message to STDERR.
|
||||
# Print an error message to stderr.
|
||||
# Arguments:
|
||||
# 1 -- The printc formatting string.
|
||||
# ... -- The printc formatting arguments.
|
||||
@ -71,7 +71,7 @@ print_error() {
|
||||
# -----------------------------------------------------------------------------
|
||||
# Initialization:
|
||||
# -----------------------------------------------------------------------------
|
||||
printc_init <<END
|
||||
printc_init "[DEFINE]" <<END
|
||||
CLEAR \x1B[0m
|
||||
RED \x1B[31m
|
||||
GREEN \x1B[32m
|
||||
@ -82,4 +82,3 @@ printc_init <<END
|
||||
|
||||
DIM \x1B[2m
|
||||
END
|
||||
|
||||
|
@ -8,11 +8,10 @@
|
||||
|
||||
# Converts a string to lower case.
|
||||
tolower() {
|
||||
tr "[[:upper:]]" "[[:lower:]]" <<< "$1"
|
||||
tr "[:upper:]" "[:lower:]" <<<"$1"
|
||||
}
|
||||
|
||||
# Converts a string to upper case.
|
||||
toupper() {
|
||||
tr "[[:lower:]]" "[[:upper:]]" <<< "$1"
|
||||
tr "[:lower:]" "[:upper:]" <<<"$1"
|
||||
}
|
||||
|
||||
|
@ -49,7 +49,7 @@ version_compare__recurse() {
|
||||
# Compare the versions specially if the final number has been reached.
|
||||
if [[ -z "$v_minor" && -z "$c_minor" ]]; then
|
||||
[ "$v_major" $operator "$c_major" ];
|
||||
return $?;
|
||||
return $?
|
||||
fi
|
||||
|
||||
# Insert zeroes where there are missing numbers.
|
||||
@ -64,15 +64,13 @@ version_compare__recurse() {
|
||||
# Compare the versions.
|
||||
# This is an early escape case.
|
||||
case "$operator" in
|
||||
-eq) [[ "$v_major" -ne "$c_major" ]] && return 1;;
|
||||
-ne) [[ "$v_major" -ne "$c_major" ]] && return 0;;
|
||||
-ge|-gt) [[ "$v_major" -lt "$c_major" ]] && return 1;
|
||||
[[ "$v_major" -gt "$c_major" ]] && return 0;;
|
||||
-le|-lt) [[ "$v_major" -gt "$c_major" ]] && return 1;
|
||||
[[ "$v_major" -lt "$c_major" ]] && return 0;;
|
||||
-eq) [[ "$v_major" -ne "$c_major" ]] && return 1 ;;
|
||||
-ne) [[ "$v_major" -ne "$c_major" ]] && return 0 ;;
|
||||
-ge | -gt) [[ "$v_major" -lt "$c_major" ]] && return 1
|
||||
[[ "$v_major" -gt "$c_major" ]] && return 0 ;;
|
||||
-le | -lt) [[ "$v_major" -gt "$c_major" ]] && return 1
|
||||
[[ "$v_major" -lt "$c_major" ]] && return 0 ;;
|
||||
esac
|
||||
|
||||
version_compare__recurse "$v_minor" "$operator" "$c_minor"
|
||||
}
|
||||
|
||||
|
||||
|
154
src/batgrep.sh
154
src/batgrep.sh
@ -5,6 +5,7 @@
|
||||
# Repository: https://github.com/eth-p/bat-extras
|
||||
# Issues: https://github.com/eth-p/bat-extras/issues
|
||||
# -----------------------------------------------------------------------------
|
||||
# shellcheck disable=SC1090
|
||||
LIB="$(cd "$(dirname "${BASH_SOURCE[0]}")" && cd "$(dirname "$(readlink "${BASH_SOURCE[0]}" || echo ".")")/../lib" && pwd)"
|
||||
BAT="bat"
|
||||
source "${LIB}/print.sh"
|
||||
@ -43,71 +44,84 @@ fi
|
||||
while shiftopt; do
|
||||
case "$OPT" in
|
||||
|
||||
# Ripgrep Options
|
||||
-i|--ignore-case) OPT_CASE_SENSITIVITY="--ignore-case";;
|
||||
-s|--case-sensitive) OPT_CASE_SENSITIVITY="--case-sensitive";;
|
||||
-S|--smart-case) OPT_CASE_SENSITIVITY="--smart-case";;
|
||||
-A|--after-context) shiftval; OPT_CONTEXT_AFTER="$OPT_VAL";;
|
||||
-B|--before-context) shiftval; OPT_CONTEXT_BEFORE="$OPT_VAL";;
|
||||
-C|--context) shiftval; OPT_CONTEXT_BEFORE="$OPT_VAL";
|
||||
OPT_CONTEXT_AFTER="$OPT_VAL";;
|
||||
# ripgrep options
|
||||
-i | --ignore-case) OPT_CASE_SENSITIVITY="--ignore-case" ;;
|
||||
-s | --case-sensitive) OPT_CASE_SENSITIVITY="--case-sensitive" ;;
|
||||
-S | --smart-case) OPT_CASE_SENSITIVITY="--smart-case" ;;
|
||||
-A | --after-context) shiftval; OPT_CONTEXT_AFTER="$OPT_VAL" ;;
|
||||
-B | --before-context) shiftval; OPT_CONTEXT_BEFORE="$OPT_VAL" ;;
|
||||
|
||||
-F|--fixed-strings) OPT_FIXED_STRINGS=true; RG_ARGS+=("$OPT");;
|
||||
-C | --context)
|
||||
shiftval
|
||||
OPT_CONTEXT_BEFORE="$OPT_VAL"
|
||||
OPT_CONTEXT_AFTER="$OPT_VAL"
|
||||
;;
|
||||
|
||||
-U|--multiline|\
|
||||
-P|--pcre2|\
|
||||
-z|--search-zip|\
|
||||
-w|--word-regexp|\
|
||||
--one-file-system|\
|
||||
--multiline-dotall|\
|
||||
--ignore|--no-ignore|\
|
||||
--crlf|--no-crlf|\
|
||||
--hidden|--no-hidden) RG_ARGS+=("$OPT");;
|
||||
-F | --fixed-strings)
|
||||
OPT_FIXED_STRINGS=true
|
||||
RG_ARGS+=("$OPT")
|
||||
;;
|
||||
|
||||
-E|--encoding|\
|
||||
-g|--glob|\
|
||||
-t|--type|\
|
||||
-T|--type-not|\
|
||||
-m|--max-count|\
|
||||
--max-depth|\
|
||||
--iglob|\
|
||||
--ignore-file) shiftval; RG_ARGS+=("$OPT" "$OPT_VAL");;
|
||||
-U | --multiline | \
|
||||
-P | --pcre2 | \
|
||||
-z | --search-zip | \
|
||||
-w | --word-regexp | \
|
||||
--one-file-system | \
|
||||
--multiline-dotall | \
|
||||
--ignore | --no-ignore | \
|
||||
--crlf | --no-crlf | \
|
||||
--hidden | --no-hidden)
|
||||
RG_ARGS+=("$OPT")
|
||||
;;
|
||||
|
||||
# Bat Options
|
||||
-E | --encoding | \
|
||||
-g | --glob | \
|
||||
-t | --type | \
|
||||
-T | --type-not | \
|
||||
-m | --max-count | \
|
||||
--max-depth | \
|
||||
--iglob | \
|
||||
--ignore-file)
|
||||
shiftval
|
||||
RG_ARGS+=("$OPT" "$OPT_VAL")
|
||||
;;
|
||||
|
||||
# Script Options
|
||||
--no-follow) OPT_FOLLOW=false;;
|
||||
--no-snip) OPT_SNIP="";;
|
||||
--no-highlight) OPT_HIGHLIGHT=false;;
|
||||
-p|--search-pattern) OPT_SEARCH_PATTERN=true;;
|
||||
--no-search-pattern) OPT_SEARCH_PATTERN=false;;
|
||||
# bat options
|
||||
|
||||
# Option Forwarding
|
||||
--rg:*) {
|
||||
if [[ "${OPT:5:1}" = "-" ]]; then
|
||||
RG_ARGS+=("${OPT:5}")
|
||||
else
|
||||
RG_ARGS+=("--${OPT:5}")
|
||||
fi
|
||||
if [[ -n "$OPT_VAL" ]]; then
|
||||
RG_ARGS+=("$OPT_VAL")
|
||||
fi
|
||||
};;
|
||||
# Script options
|
||||
--no-follow) OPT_FOLLOW=false ;;
|
||||
--no-snip) OPT_SNIP="" ;;
|
||||
--no-highlight) OPT_HIGHLIGHT=false ;;
|
||||
-p | --search-pattern) OPT_SEARCH_PATTERN=true ;;
|
||||
--no-search-pattern) OPT_SEARCH_PATTERN=false ;;
|
||||
|
||||
# ???
|
||||
-*) {
|
||||
printc "%{RED}%s: unknown option '%s'%{CLEAR}\n" "$PROGRAM" "$OPT" 1>&2
|
||||
exit 1
|
||||
};;
|
||||
# Option forwarding
|
||||
--rg:*) {
|
||||
if [[ "${OPT:5:1}" = "-" ]]; then
|
||||
RG_ARGS+=("${OPT:5}")
|
||||
else
|
||||
RG_ARGS+=("--${OPT:5}")
|
||||
fi
|
||||
if [[ -n "$OPT_VAL" ]]; then
|
||||
RG_ARGS+=("$OPT_VAL")
|
||||
fi
|
||||
} ;;
|
||||
|
||||
# ???
|
||||
-*) {
|
||||
printc "%{RED}%s: unknown option '%s'%{CLEAR}\n" "$PROGRAM" "$OPT" 1>&2
|
||||
exit 1
|
||||
} ;;
|
||||
|
||||
# Search
|
||||
*) {
|
||||
if [ -z "$PATTERN" ]; then
|
||||
PATTERN="$OPT"
|
||||
else
|
||||
FILES+=("$OPT")
|
||||
fi
|
||||
} ;;
|
||||
|
||||
# Search
|
||||
*) {
|
||||
if [ -z "$PATTERN" ]; then
|
||||
PATTERN="$OPT"
|
||||
else
|
||||
FILES+=("$OPT")
|
||||
fi
|
||||
};;
|
||||
esac
|
||||
done
|
||||
|
||||
@ -153,15 +167,14 @@ if "$OPT_SEARCH_PATTERN"; then
|
||||
SCRIPT_PAGER_ARGS+=(-p "$PATTERN")
|
||||
fi
|
||||
elif is_pager_disabled; then
|
||||
print_error "$(
|
||||
echo "The -p/--search-pattern option requires a pager, but" \
|
||||
"the pager was explicitly disabled by \$BAT_PAGER or the" \
|
||||
"--paging option."
|
||||
)"
|
||||
print_error "%s %s %s" \
|
||||
"The -p/--search-pattern option requires a pager, but" \
|
||||
"the pager was explicitly disabled by \$BAT_PAGER or the" \
|
||||
"--paging option."
|
||||
exit 1
|
||||
else
|
||||
print_error "Unsupported pager '%s' for option -p/--search-pattern" \
|
||||
"$(pager_name)"
|
||||
"$(pager_name)"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
@ -170,6 +183,7 @@ fi
|
||||
# Main:
|
||||
# -----------------------------------------------------------------------------
|
||||
main() {
|
||||
# shellcheck disable=SC2034
|
||||
FOUND_FILES=()
|
||||
FOUND=0
|
||||
FIRST_PRINT=true
|
||||
@ -186,17 +200,18 @@ main() {
|
||||
|
||||
# Print the file.
|
||||
"$BAT" "${BAT_ARGS[@]}" \
|
||||
"${LAST_LR[@]}" \
|
||||
"${LAST_LH[@]}" \
|
||||
--style="${BAT_STYLE}${OPT_SNIP}" \
|
||||
--paging=never \
|
||||
--terminal-width="$COLS" \
|
||||
"$LAST_FILE"
|
||||
"${LAST_LR[@]}" \
|
||||
"${LAST_LH[@]}" \
|
||||
--style="${BAT_STYLE}${OPT_SNIP}" \
|
||||
--paging=never \
|
||||
--terminal-width="$COLS" \
|
||||
"$LAST_FILE"
|
||||
|
||||
# Print the separator.
|
||||
echo "$SEP"
|
||||
}
|
||||
|
||||
# shellcheck disable=SC2034
|
||||
while IFS=':' read -r file line column; do
|
||||
((FOUND++))
|
||||
|
||||
@ -225,4 +240,3 @@ main() {
|
||||
|
||||
pager_exec main
|
||||
exit $?
|
||||
|
||||
|
@ -5,6 +5,7 @@
|
||||
# Repository: https://github.com/eth-p/bat-extras
|
||||
# Issues: https://github.com/eth-p/bat-extras/issues
|
||||
# -----------------------------------------------------------------------------
|
||||
# shellcheck disable=SC1090 disable=SC2155
|
||||
LIB="$(cd "$(dirname "${BASH_SOURCE[0]}")" && cd "$(dirname "$(readlink "${BASH_SOURCE[0]}" || echo ".")")/../lib" && pwd)"
|
||||
BAT="bat"
|
||||
if [[ -n "${MANPAGER}" ]]; then BAT_PAGER="$MANPAGER"; fi
|
||||
@ -21,12 +22,12 @@ BAT_ARGS=()
|
||||
|
||||
while shiftopt; do MAN_ARGS+=("$OPT"); done
|
||||
if "$OPT_COLOR"; then
|
||||
BAT_ARGS="--color=always --decorations=always"
|
||||
BAT_ARGS=("--color=always --decorations=always")
|
||||
else
|
||||
BAT_ARGS="--color=never --decorations=never"
|
||||
BAT_ARGS=("--color=never --decorations=never")
|
||||
fi
|
||||
# -----------------------------------------------------------------------------
|
||||
export MANPAGER='sh -c "col -bx | '"$(printf "%q" "$BAT")"' --language=man --style=grid '"${BAT_ARGS[@]}"'"'
|
||||
export MANPAGER='sh -c "col -bx | '"$(printf "%q" "$BAT")"' --language=man --style=grid '"${BAT_ARGS[*]}"'"'
|
||||
export MANROFFOPT='-c'
|
||||
|
||||
if [[ -n "${SCRIPT_PAGER_CMD}" ]]; then
|
||||
@ -37,4 +38,3 @@ fi
|
||||
|
||||
command man "${MAN_ARGS[@]}"
|
||||
exit $?
|
||||
|
||||
|
@ -5,6 +5,7 @@
|
||||
# Repository: https://github.com/eth-p/bat-extras
|
||||
# Issues: https://github.com/eth-p/bat-extras/issues
|
||||
# -----------------------------------------------------------------------------
|
||||
# shellcheck disable=SC1090
|
||||
LIB="$(cd "$(dirname "${BASH_SOURCE[0]}")" && cd "$(dirname "$(readlink "${BASH_SOURCE[0]}" || echo ".")")/../lib" && pwd)"
|
||||
BAT="bat"
|
||||
DOCS_URL="https://github.com/eth-p/bat-extras/blob/master/doc"
|
||||
@ -45,7 +46,6 @@ watcher_entr_supported() {
|
||||
return $?
|
||||
}
|
||||
|
||||
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
|
||||
POLL_STAT_VARIANT=''
|
||||
@ -162,26 +162,26 @@ fi
|
||||
while shiftopt; do
|
||||
case "$OPT" in
|
||||
|
||||
# Script Options
|
||||
--watcher) shiftval; OPT_WATCHER="$OPT_VAL";;
|
||||
--clear) OPT_CLEAR=true;;
|
||||
--no-clear) OPT_CLEAR=false;;
|
||||
--terminal-width) shiftval; TERM_WIDTH="$OPT_VAL";;
|
||||
# Script options
|
||||
--watcher) shiftval; OPT_WATCHER="$OPT_VAL" ;;
|
||||
--clear) OPT_CLEAR=true ;;
|
||||
--no-clear) OPT_CLEAR=false ;;
|
||||
--terminal-width) shiftval; TERM_WIDTH="$OPT_VAL" ;;
|
||||
|
||||
# Bat/Pager Options
|
||||
-*) BAT_ARGS+=("$OPT=$OPT_VAL");;
|
||||
# bat/Pager options
|
||||
-*) BAT_ARGS+=("$OPT=$OPT_VAL") ;;
|
||||
|
||||
# Files
|
||||
*) {
|
||||
FILES+=("$OPT")
|
||||
};;
|
||||
# Files
|
||||
*) {
|
||||
FILES+=("$OPT")
|
||||
} ;;
|
||||
|
||||
esac
|
||||
done
|
||||
|
||||
if [[ -z "$FILES" ]]; then
|
||||
print_error "no files provided"
|
||||
exit 1
|
||||
if [[ ${#FILES[@]} -eq 0 ]]; then
|
||||
print_error "no files provided"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
for file in "${FILES[@]}"; do
|
||||
@ -207,8 +207,7 @@ fi
|
||||
# -----------------------------------------------------------------------------
|
||||
# Determine the watcher.
|
||||
if [[ -z "$OPT_WATCHER" ]]; then
|
||||
OPT_WATCHER="$(determine_watcher)"
|
||||
if [[ $? -ne 0 ]]; then
|
||||
if ! OPT_WATCHER="$(determine_watcher)"; then
|
||||
print_error "Your system does not have any supported watchers."
|
||||
printc "Please read the documentation at %{BLUE}%s%{CLEAR} for more details.\n" "$DOCS_URL/batwatch.md" 1>&2
|
||||
exit 2
|
||||
@ -233,4 +232,3 @@ main() {
|
||||
|
||||
pager_exec main
|
||||
exit $?
|
||||
|
||||
|
@ -5,6 +5,7 @@
|
||||
# Repository: https://github.com/eth-p/bat-extras
|
||||
# Issues: https://github.com/eth-p/bat-extras/issues
|
||||
# -----------------------------------------------------------------------------
|
||||
# shellcheck disable=SC1090
|
||||
LIB="$(cd "$(dirname "${BASH_SOURCE[0]}")" && cd "$(dirname "$(readlink "${BASH_SOURCE[0]}" || echo ".")")/../lib" && pwd)"
|
||||
BAT="bat"
|
||||
source "${LIB}/opt.sh"
|
||||
@ -20,14 +21,15 @@ FORMATTERS=("prettier" "rustfmt" "shfmt" "clangformat")
|
||||
|
||||
formatter_prettier_supports() {
|
||||
case "$1" in
|
||||
.js|.jsx|\
|
||||
.ts|.tsx|\
|
||||
.css|.scss|.sass|\
|
||||
.html|\
|
||||
.json|\
|
||||
.md|\
|
||||
.js | .jsx | \
|
||||
.ts | .tsx | \
|
||||
.css | .scss | .sass | \
|
||||
.html | \
|
||||
.json | \
|
||||
.md | \
|
||||
.yml)
|
||||
return 0;;
|
||||
return 0
|
||||
;;
|
||||
esac
|
||||
|
||||
return 1
|
||||
@ -42,10 +44,11 @@ formatter_prettier_process() {
|
||||
|
||||
formatter_clangformat_supports() {
|
||||
case "$1" in
|
||||
.c|.cpp|.cxx|\
|
||||
.h|.hpp|\
|
||||
.c | .cpp | .cxx | \
|
||||
.h | .hpp | \
|
||||
.m)
|
||||
return 0;;
|
||||
return 0
|
||||
;;
|
||||
esac
|
||||
|
||||
return 1
|
||||
@ -80,8 +83,6 @@ formatter_shfmt_process() {
|
||||
return $?
|
||||
}
|
||||
|
||||
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Functions:
|
||||
# -----------------------------------------------------------------------------
|
||||
@ -93,19 +94,19 @@ map_language_to_extension() {
|
||||
local ext=".txt"
|
||||
|
||||
case "$1" in
|
||||
sh|bash) ext=".sh" ;;
|
||||
js|es6|es) ext=".js" ;;
|
||||
jsx) ext=".jsx" ;;
|
||||
ts) ext=".ts" ;;
|
||||
tsx) ext=".tsx" ;;
|
||||
css) ext=".css" ;;
|
||||
scss) ext=".scss" ;;
|
||||
sass) ext=".sass" ;;
|
||||
html|htm|shtml|xhtml) ext=".html" ;;
|
||||
json) ext=".json" ;;
|
||||
md|mdown|markdown) ext=".md" ;;
|
||||
yaml|yml) ext=".yml" ;;
|
||||
rust|rs) ext=".rs" ;;
|
||||
sh | bash) ext=".sh" ;;
|
||||
js | es6 | es) ext=".js" ;;
|
||||
jsx) ext=".jsx" ;;
|
||||
ts) ext=".ts" ;;
|
||||
tsx) ext=".tsx" ;;
|
||||
css) ext=".css" ;;
|
||||
scss) ext=".scss" ;;
|
||||
sass) ext=".sass" ;;
|
||||
html | htm | shtml | xhtml) ext=".html" ;;
|
||||
json) ext=".json" ;;
|
||||
md | mdown | markdown) ext=".md" ;;
|
||||
yaml | yml) ext=".yml" ;;
|
||||
rust | rs) ext=".rs" ;;
|
||||
esac
|
||||
|
||||
echo "$ext"
|
||||
@ -146,13 +147,14 @@ process_file() {
|
||||
local ext="$2"
|
||||
local fext="$ext"
|
||||
local lang="${ext:1}"
|
||||
local formatter
|
||||
|
||||
if [[ -n "$OPT_LANGUAGE" ]]; then
|
||||
lang="$OPT_LANGUAGE"
|
||||
fext="$(map_language_to_extension "$lang")"
|
||||
fi
|
||||
|
||||
local formatter="$(map_extension_to_formatter "$fext")"
|
||||
formatter="$(map_extension_to_formatter "$fext")"
|
||||
echo "FORMATTER >>> $formatter"
|
||||
if [[ "$formatter" = "none" ]]; then
|
||||
if [[ -z "$OPT_LANGUAGE" ]]; then
|
||||
@ -164,19 +166,22 @@ process_file() {
|
||||
fi
|
||||
|
||||
# Prettify, then print.
|
||||
local status
|
||||
local data_raw
|
||||
local data_formatted
|
||||
|
||||
# shellcheck disable=SC2094 disable=SC2181
|
||||
if [[ "$file" = "-" ]]; then
|
||||
data_raw="$(cat -)"
|
||||
data_formatted="$("formatter_${formatter}_process" "$file" 2>/dev/null <<< "$data_raw")"
|
||||
data_formatted="$("formatter_${formatter}_process" "$file" 2>/dev/null <<<"$data_raw")"
|
||||
|
||||
if [[ $? -ne 0 ]]; then
|
||||
print_warning "'STDIN': Unable to format with '%s'" "$formatter"
|
||||
print_file --language="$lang" - <<< "$data_raw"
|
||||
print_file --language="$lang" - <<<"$data_raw"
|
||||
return 1
|
||||
fi
|
||||
else
|
||||
data_formatted="$("formatter_${formatter}_process" "$file" < "$file")"
|
||||
data_formatted="$("formatter_${formatter}_process" "$file" <"$file")"
|
||||
|
||||
if [[ $? -ne 0 ]]; then
|
||||
print_warning "'%s': Unable to format with '%s'" "$file" "$formatter"
|
||||
print_file --language="$lang" "$file"
|
||||
@ -184,7 +189,7 @@ process_file() {
|
||||
fi
|
||||
fi
|
||||
|
||||
print_file --language="$lang" - <<< "$data_formatted"
|
||||
print_file --language="$lang" - <<<"$data_formatted"
|
||||
return $?
|
||||
}
|
||||
|
||||
@ -199,26 +204,26 @@ FILES=()
|
||||
while shiftopt; do
|
||||
case "$OPT" in
|
||||
|
||||
# Language Options
|
||||
-l) shiftval; OPT_LANGUAGE="${OPT_VAL}" ;;
|
||||
-l*) OPT_LANGUAGE="${OPT:2}" ;;
|
||||
--language) shiftval; OPT_LANGUAGE="$OPT_VAL" ;;
|
||||
# Language options
|
||||
-l) shiftval; OPT_LANGUAGE="${OPT_VAL}" ;;
|
||||
-l*) OPT_LANGUAGE="${OPT:2}" ;;
|
||||
--language) shiftval; OPT_LANGUAGE="$OPT_VAL" ;;
|
||||
|
||||
# Bat Options
|
||||
-*) {
|
||||
BAT_ARGS+=("$OPT=$OPT_VAL")
|
||||
};;
|
||||
# bat options
|
||||
-*) {
|
||||
BAT_ARGS+=("$OPT=$OPT_VAL")
|
||||
} ;;
|
||||
|
||||
# Files
|
||||
*) {
|
||||
FILES+=("$OPT")
|
||||
};;
|
||||
# Files
|
||||
*) {
|
||||
FILES+=("$OPT")
|
||||
} ;;
|
||||
|
||||
esac
|
||||
done
|
||||
|
||||
if [[ "${#FILES[@]}" -eq 0 ]]; then
|
||||
FILES="-"
|
||||
FILES=("-")
|
||||
fi
|
||||
|
||||
# Handle input files.
|
||||
@ -230,5 +235,4 @@ for file in "${FILES[@]}"; do
|
||||
done
|
||||
|
||||
# Exit.
|
||||
exit $EXIT
|
||||
|
||||
exit "$FAIL"
|
||||
|
9
test.sh
9
test.sh
@ -9,7 +9,7 @@ HERE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
LIB="${HERE}/lib"
|
||||
source "${LIB}/opt.sh"
|
||||
# -----------------------------------------------------------------------------
|
||||
cd "$HERE"
|
||||
cd "$HERE" || exit
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
export TEST_ENV_LIB="${HERE}/lib"
|
||||
@ -25,8 +25,11 @@ export SNAPSHOT_DIR="${HERE}/test/snapshot"
|
||||
OPT_ARGV=()
|
||||
while shiftopt; do
|
||||
case "$OPT" in
|
||||
--compiled) TEST_ENV_BIN_DIR="${HERE}/bin"; TEST_ENV_BIN_SUFFIX="" ;;
|
||||
*) OPT_ARGV+=("$OPT") ;;
|
||||
--compiled)
|
||||
TEST_ENV_BIN_DIR="${HERE}/bin"
|
||||
TEST_ENV_BIN_SUFFIX=""
|
||||
;;
|
||||
*) OPT_ARGV+=("$OPT") ;;
|
||||
esac
|
||||
done
|
||||
|
||||
|
@ -7,4 +7,3 @@ clocks
|
||||
bash
|
||||
$300
|
||||
^$!@
|
||||
|
||||
|
@ -6,4 +6,4 @@ while read -d ':' -r dir; do
|
||||
if [[ -f "${dir}/bat" ]]; then
|
||||
exec "${dir}/bat" "$@" --theme="Monokai Extended"
|
||||
fi
|
||||
done <<< "$PATH"
|
||||
done <<<"$PATH"
|
||||
|
@ -1,5 +1,5 @@
|
||||
#!/usr/bin/env bash
|
||||
case "$1" in
|
||||
cols) echo 80 ;;
|
||||
lines) echo 22 ;;
|
||||
cols) echo 80 ;;
|
||||
lines) echo 22 ;;
|
||||
esac
|
||||
|
Loading…
Reference in New Issue
Block a user