소스 검색

move helpers to separate files

Daniel Sheffield 3 달 전
부모
커밋
b3462bbe21
5개의 변경된 파일85개의 추가작업 그리고 68개의 파일을 삭제
  1. 2 1
      capture.sh
  2. 54 0
      helpers/awk.sh
  3. 4 3
      helpers/common.sh
  4. 21 0
      helpers/fzf.sh
  5. 4 64
      recall.sh

+ 2 - 1
capture.sh

@@ -1,4 +1,6 @@
 #!/bin/bash
+# Copyright (c) Daniel Sheffield 2024 - 2025
+
 set -euo pipefail
 if [ "$#" == "0" ]
 then
@@ -7,7 +9,6 @@ then
 fi
 
 . "${BASH_SOURCE[0]%/*}"/helpers/common.sh
-LOG_ROOT="$HOME"/.local/var/log/shell # source this
 
 PROG="$1"
 SUBPROG="$(get_subprog "$@")"

+ 54 - 0
helpers/awk.sh

@@ -0,0 +1,54 @@
+#!/bin/bash
+# Copyright (c) Daniel Sheffield 2024 - 2025
+
+ESSENTIAL_SYSTEM_SPECIFIC+=(
+	awk
+)
+
+awk_strip_first_path_part_script () {
+	cat <<'EOF'
+{
+    for (i=2; i<=NF; i++)
+        printf "%s%s", $(i), (i<NF ? OFS : ORS)
+}
+EOF
+}
+
+
+awk_rw0_strip_first_path_part () {
+	# NOTE: ./a/b/c -> a/b/c (null delimited)
+	awk \
+		-v FS='/' -v RS='\0' \
+		-v OFS='/' -v ORS='\0' \
+		"$(awk_strip_first_path_part_script)" \
+	&& :
+
+}
+
+awk_r0_add_prefix () {
+	# NOTE: some-string -> <prefix>some-string (null delimited)
+	: "${2?awk_r0_add_prefix requires exactly two positional args}"
+	: "${1:?awk_r0_add_prefix output record separator must be set and non-empty}"
+	[ "${1:+DefinedNotEmpty}" == "DefinedNotEmpty" ]
+	[ "${2+DefinedMaybeEmpty}" == "DefinedMaybeEmpty" ]
+	awk \
+		-v prefix="$2/" \
+		-v RS='\0' \
+		-v ORS="$1" \
+	       '{print prefix $0}' \
+	&& :
+}
+
+awk_r0_add_suffix () {
+	# NOTE: some-string -> some-string<suffix> (null delimited)
+	: "${2?awk_r0_add_suffix requires exactly two positional args}"
+	: "${1:?awk_r0_add_suffix output record separator must be set and non-empty}"
+	[ "${1:+DefinedNotEmpty}" == "DefinedNotEmpty" ]
+	[ "${2+DefinedMaybeEmpty}" == "DefinedMaybeEmpty" ]
+	awk \
+		-v suffix="/$2" \
+		-v RS='\0' \
+		-v ORS="$1" \
+	       '{print $0 suffix}' \
+	&& :
+}

+ 4 - 3
helpers/common.sh

@@ -1,4 +1,8 @@
 #!/bin/bash
+# Copyright (c) Daniel Sheffield 2024 - 2025
+
+LOG_ROOT="$HOME"/.local/var/log/shell
+
 ESSENTIAL_GENERIC=(
 	cat
 	echo
@@ -6,15 +10,12 @@ ESSENTIAL_GENERIC=(
 	sort
 )
 ESSENTIAL_SYSTEM_SPECIFIC=(
-	awk
 	find
 	head
 	tail
 	xargs
 )
 NONESSENTIAL=(
-	# TODO: add built-in minimal replacement for fzf
-	fzf
 )
 
 get_subprog () {

+ 21 - 0
helpers/fzf.sh

@@ -0,0 +1,21 @@
+#!/bin/bash
+# Copyright (c) Daniel Sheffield 2024 - 2025
+
+NONESSENTIAL+=(
+	# TODO: add built-in minimal replacement for fzf
+	fzf
+)
+
+fzf_rw0_inplace_preview () {
+	# NOTE: to preview and select captured command directories
+	header_len="$1"
+	# shellcheck disable=SC2016
+	fzf \
+		--read0 --print0 \
+		-m \
+		--no-sort \
+		-d / \
+		--preview-window="~$header_len" \
+		--preview='cat {}/info; head -n "$LINES" {}/dat' \
+	&& :
+}

+ 4 - 64
recall.sh

@@ -1,4 +1,6 @@
 #!/bin/bash
+# Copyright (c) Daniel Sheffield 2024 - 2025
+
 set -euo pipefail
 if [ "$#" == "0" ]
 then
@@ -7,14 +9,14 @@ then
 fi
 
 . "${BASH_SOURCE[0]%/*}"/helpers/common.sh
+. "${BASH_SOURCE[0]%/*}"/helpers/awk.sh
+. "${BASH_SOURCE[0]%/*}"/helpers/fzf.sh
 
 stderr_deps=/dev/null
 # NOTE: uncomment to see err output from `which` (if any)
 #stderr_deps='/proc/self/fd/2'
 check_deps 3>&2 2>"$stderr_deps" 1>/dev/null
 
-LOG_ROOT="$HOME"/.local/var/log/shell # source this
-
 EXIT_SUCCESS=false
 LIST_MODE=false
 CMD_STRING=false
@@ -125,68 +127,6 @@ shift $((OPTIND-1))
 
 validate "$@"
 
-fzf_rw0_inplace_preview () {
-	# NOTE: to preview and select captured command directories
-	header_len="$1"
-	# shellcheck disable=SC2016
-	fzf \
-		--read0 --print0 \
-		-m \
-		--no-sort \
-		-d / \
-		--preview-window="~$header_len" \
-		--preview='cat {}/info; head -n "$LINES" {}/dat' \
-	&& :
-}
-
-awk_strip_first_path_part_script () {
-	cat <<'EOF'
-{
-    for (i=2; i<=NF; i++)
-        printf "%s%s", $(i), (i<NF ? OFS : ORS)
-}
-EOF
-}
-
-
-awk_rw0_strip_first_path_part () {
-	# NOTE: ./a/b/c -> a/b/c (null delimited)
-	awk \
-		-v FS='/' -v RS='\0' \
-		-v OFS='/' -v ORS='\0' \
-		"$(awk_strip_first_path_part_script)" \
-	&& :
-
-}
-
-awk_r0_add_prefix () {
-	# NOTE: some-string -> <prefix>some-string (null delimited)
-	: "${2?awk_r0_add_prefix requires exactly two positional args}"
-	: "${1:?awk_r0_add_prefix output record separator must be set and non-empty}"
-	[ "${1:+DefinedNotEmpty}" == "DefinedNotEmpty" ]
-	[ "${2+DefinedMaybeEmpty}" == "DefinedMaybeEmpty" ]
-	awk \
-		-v prefix="$2/" \
-		-v RS='\0' \
-		-v ORS="$1" \
-	       '{print prefix $0}' \
-	&& :
-}
-
-awk_r0_add_suffix () {
-	# NOTE: some-string -> some-string<suffix> (null delimited)
-	: "${2?awk_r0_add_suffix requires exactly two positional args}"
-	: "${1:?awk_r0_add_suffix output record separator must be set and non-empty}"
-	[ "${1:+DefinedNotEmpty}" == "DefinedNotEmpty" ]
-	[ "${2+DefinedMaybeEmpty}" == "DefinedMaybeEmpty" ]
-	awk \
-		-v suffix="/$2" \
-		-v RS='\0' \
-		-v ORS="$1" \
-	       '{print $0 suffix}' \
-	&& :
-}
-
 sort_rw0 () {
 	# NOTE: sort by program, or timestamp
 	if [ "$1" = "prog" ]