1
0
mirror of https://github.com/RyanGreenup/cadmus.git synced 2025-02-23 14:12:33 +01:00
cadmus/bin/template.sh

107 lines
3.2 KiB
Bash
Raw Normal View History

2020-07-15 20:08:51 +10:00
#! /usr/bin/env bash
#
# Author: Ryan Greenup <ryan.greenup@protonmail.com>
# * Shell Settings
set -o errexit # abort on nonzero exitstatus
set -o nounset # abort on unbound variable
set -o pipefail # don't hide errors within pipes
# * Main Function
main() {
2020-07-14 21:49:08 +10:00
2020-07-15 20:08:51 +10:00
check_for_dependencies
2020-07-14 21:49:08 +10:00
setVars
readFirstArgument "${@}"
NoteSearchRecoll "${@}"
2020-07-15 20:08:51 +10:00
}
# ** Helper Functions
2020-07-14 21:49:08 +10:00
# *** Check for Dependencies
check_for_dependencies () {
for i in ${DependArray[@]}; do
command -v "$i" >/dev/null 2>&1 || { echo >&2 "I require $i but it's not installed. Aborting."; exit 1; }
done
2020-07-15 20:08:51 +10:00
}
2020-07-14 21:49:08 +10:00
# **** List of Dependencies
declare -a DependArray=(
"rg"
"sk"
"mdcat"
"xclip"
)
2020-07-15 20:08:51 +10:00
# *** Set variables below main
setVars () {
readonly script_name=$(basename "${0}")
readonly script_dir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
IFS=$'\t\n' # Split on newlines and tabs (but not on spaces)
}
2020-07-14 21:49:08 +10:00
# **** Print Help
2020-07-15 20:08:51 +10:00
Help () {
echo
2020-07-14 21:49:08 +10:00
echo -e " \e[3m\e[1mNoteFind.sh \e[0m; Helpful Shell Scripts for Markdown Notes"
echo -e " \e[1;31m--------------------------\e[0m "
echo
echo -e " \e[3m\e[1m• Usage \e[0m "
echo
echo -e " "${script_name}" [<path/to/notes>]"
echo -e " "${script_name}" [-h]"
echo -e " "${script_name}" [--help]"
echo
echo -e " \e[3m By Design: No Options; No other Arguments\e[0m"
echo
echo -e " \e[3m\e[1m• Key Bindings\e[0m "
echo
2020-07-15 20:08:51 +10:00
echo
echo -e " \e[1;91m \e[1m Binding \e[0m\e[0m \e[1;34m┊┊┊ \e[0m Description "
echo -e " ..............\e[1;34m┊┊┊\e[0m........................................... "
echo -e " \e[1;95m Ctrl - q \e[0m \e[1;34m ┊┊┊ \e[0m \e[1m Search \e[0m with \e[0m\e[3mripgrep\e[0m"
echo -e " \e[1;93m Ctrl - w \e[0m \e[1;34m ┊┊┊ \e[0m \e[1m Copy \e[0m the Full Path to the Clipboard"
echo -e " \e[1;93m Alt - w \e[0m \e[1;34m ┊┊┊ \e[0m \e[1m Copy \e[0m the Relative Path to the Clipboard"
echo -e " \e[1;94m Alt - e \e[0m \e[1;34m ┊┊┊ \e[0m \e[1m Open \e[0m in Emacs"
echo -e " \e[1;94m Alt - v \e[0m \e[1;34m ┊┊┊ \e[0m \e[1m Open \e[0m in VSCode"
echo -e " \e[1;94m Ctrl - o \e[0m \e[1;34m ┊┊┊ \e[0m \e[1m Open \e[0m in Default Program"
echo
echo -e " \e[3m\e[1m• Compatability \e[0m "
echo
2020-07-14 21:49:08 +10:00
echo -e " Match highlighting occurs automatically if \e[1m\$SHELL\e[0m is \e[1m **/fish\e[0m"
2020-07-15 20:08:51 +10:00
echo -e " This uses \e[1mtmpfs\e[0m at \e[1m /dev/shm\e[0m, this should work on \e[3mArch\e[0m, \e[3mFedora\e[0m and \e[3mUbuntu\e[0m, I don't know about \e[3mMacOS\e[0m "
echo
exit 0
}
2020-07-14 21:49:08 +10:00
# *** Read First Argument
readFirstArgument () {
2020-07-15 20:08:51 +10:00
2020-07-14 21:49:08 +10:00
if [[ "${1:-}" == "-h" ]] || [[ "${1:-}" == "--help" ]] || [[ "${1:-}" == "" ]]; then
Help && exit 0
fi
2020-07-15 20:08:51 +10:00
}
2020-07-14 21:49:08 +10:00
# *** Note Recoll Search
NoteRecollSearch () {
2020-07-15 20:08:51 +10:00
2020-07-14 21:49:08 +10:00
## Change directory if One was specified, exit if no directory exists
cd "${1}"
2020-07-15 20:08:51 +10:00
2020-07-14 21:49:08 +10:00
echo "This is the function"
2020-07-15 20:08:51 +10:00
2020-07-14 21:49:08 +10:00
exit 0
}
2020-07-15 20:08:51 +10:00
2020-07-14 21:49:08 +10:00
# * Call Main Function
2020-07-15 20:08:51 +10:00
main "${@}"