aboutsummaryrefslogtreecommitdiff
path: root/lib/common.sh
diff options
context:
space:
mode:
Diffstat (limited to 'lib/common.sh')
-rw-r--r--lib/common.sh59
1 files changed, 59 insertions, 0 deletions
diff --git a/lib/common.sh b/lib/common.sh
new file mode 100644
index 0000000..07df773
--- /dev/null
+++ b/lib/common.sh
@@ -0,0 +1,59 @@
+# Copyright 2017 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+mapfile -t GTD_TXT_DATA < <(find "${GTD_TXT_REPOSITORY:-$HOME/gtd.txt/data}" \
+ -maxdepth 1 -type f -not -name '*~')
+GTD_TXT_DATA=("${GTD_TXT_DATA[@]}" /dev/null) # ensure GTD_TXT_DATA is nonempty
+readonly GTD_TXT_DATA
+
+common_awk() {
+ local -r AWKLIB='
+ BEGIN {
+ RS = "\n\n---\n\n"
+ FS = "\n"
+ }
+ function array_empty(arr, i) {
+ for (i in arr)
+ return 1
+ return 0
+ }
+ function filename( file) {
+ file = FILENAME
+ gsub(PWD "/", "", file)
+ gsub(HOME, "~", file)
+ return file
+ }
+ function showWithFile(text) {
+ if (text != "")
+ text = text " "
+ printf("%s%s%s%s\n", text, grey, filename(), normal)
+ }
+ '
+ local program="$1"
+ shift
+ awk \
+ -v HOME="$HOME" \
+ -v PWD="$PWD" \
+ -v grey="$(tput setaf 8)" \
+ -v normal="$(tput sgr0)" \
+ "$AWKLIB
+ $program" \
+ "$@"
+}
+
+join_by() {
+ local IFS="$1"
+ shift
+ echo "$*"
+}