#!/usr/bin/env bash
# Desc: Mixes input lines while also preserving some neighbors
# Usage: cat file | bkshuf arg1
-# Version 0.0.1
+# Version 0.1.1
# Depends: bc 1.07.1, GNU Coreutils 8.32 (shuf)
# Input: var: arg1 initial lines to output
-BKSHUF_PARAM_LINEC=1000000;
-BKSHUF_PARAM_GSIZE=25 # lines per group for BKSHUF_PARAM_LINEC lines of input
+# Load env vars
+## For these numbers of lines of input...
+if [[ ! -v BKSHUF_PARAM_LINEC ]]; then BKSHUF_PARAM_LINEC=1000000; fi;
+## ... target this group size.
+if [[ ! -v BKSHUF_PARAM_GSIZE ]]; then BKSHUF_PARAM_GSIZE=25; fi;
yell() { echo "$0: $*" >&2; } # print script path and all args to stderr
else
lc_out_max="$1"; # output line count
fi;
-
+
+ # Check env vars
+ if ! checkInt "$BKSHUF_PARAM_LINEC"; then
+ die "FATAL:Not an int:BKSHUF_PARAM_LINEC:$BKSHUF_PARAM_LINEC"; fi;
+ if ! checkInt "$BKSHUF_PARAM_GSIZE"; then
+ die "FATAL:Not an int:BKSHUF_PARAM_LINEC:$BKSHUF_PARAM_GSIZE"; fi;
# store input lines from stdin (like `shuf`)
while read -r line; do