aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/.bashrc_pgn
diff options
context:
space:
mode:
Diffstat (limited to '.bashrc_pgn')
-rw-r--r--.bashrc_pgn38
1 files changed, 38 insertions, 0 deletions
diff --git a/.bashrc_pgn b/.bashrc_pgn
new file mode 100644
index 0000000..373c5b3
--- /dev/null
+++ b/.bashrc_pgn
@@ -0,0 +1,38 @@
+[ ! -z "${BASHRC_PGN+x}" ] && return || readonly BASHRC_PGN=1
+
+source .bashrc_text || return
+
+alias strip_pgn_clk='sed --binary --in-place '"'"'s/ {\[%clk [[:digit:]]\+:[[:digit:]]\+\(:[[:digit:]]\+\)*\]}//g'"'"
+alias slice_pgn_moves='sed --binary --in-place '"'"'s/ \([[:digit:]]\+\.\)/\n\1/g'"'"
+
+normalize_pgn() {
+ dos2eol "$@" \
+ && lint "$@" \
+ && strip_pgn_clk "$@" \
+ && slice_pgn_moves "$@" \
+ && eol2dos "$@"
+}
+
+append_pgn() {
+ if [ "$#" -ne 2 ]; then
+ echo "$FUNCNAME: usage: $FUNCNAME DEST_PGN SRC_PGN" >&2
+ return 1
+ fi
+
+ printf '\r\n' >> "$1" \
+ && cat "$2" >> "$1"
+}
+
+join_pgns() (
+ [ "$#" -eq 0 ] && return
+
+ set -o errexit
+
+ cat "$1"
+
+ local i
+ for i in "${@:2}"; do
+ printf '\r\n'
+ cat "$i"
+ done
+)