mirror of
https://github.com/RyanGreenup/cadmus.git
synced 2025-02-23 06:02:58 +01:00
116 lines
3.3 KiB
Bash
Executable File
116 lines
3.3 KiB
Bash
Executable File
#! /usr/bin/env bash
|
|
NOTES_DIR="~/Notes/MD" ## TODO Global Variables are bad
|
|
# Author: Ryan Greenup <ryan.greenup@protonmail.com>
|
|
# abort on nonzero exitstatus
|
|
set -o errexit
|
|
# abort on unbound variable
|
|
set -o nounset
|
|
# don't hide errors within pipes
|
|
set -o pipefail
|
|
|
|
|
|
## * Main Functions
|
|
|
|
main() {
|
|
|
|
setvars
|
|
[[ -z "${1:-}" ]] && mainHelp && exit 0
|
|
arguments "${@:-}"
|
|
}
|
|
|
|
function setvars() {
|
|
|
|
IFS=$'\t\n' # Split on newlines and tabs (but not on spaces)
|
|
readonly script_name=$(basename "${0}")
|
|
readonly script_dir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
|
|
readonly TERMINAL="kitty"
|
|
readonly TERMINAL_EXEC='kitty -- '
|
|
readonly NOTES_DIR="$HOME/Notes"
|
|
|
|
|
|
}
|
|
|
|
|
|
# * Sub-functions
|
|
# ** Help
|
|
|
|
function mainHelp() {
|
|
|
|
echo
|
|
echo -e " \e[3m\e[1m Cadmus\e[0m; Helpful Shell Scripts for Markdown Notes"
|
|
echo -e " \e[1;31m -------------------------\e[0m "
|
|
echo
|
|
|
|
echo -e " \e[1;91m \e[1m Command \e[0m\e[0m \e[1;34m┊┊┊ \e[0m Description "
|
|
echo -e " ..............\e[1;34m┊┊┊\e[0m........................................... "
|
|
echo -e " 🔍 \e[1;93m find \e[0m \e[1;34m ┊┊┊ 🎆 \e[0m Find Notes based on FileName"
|
|
echo -e " 🔎 \e[1;32m search \e[0m \e[1;34m ┊┊┊ 📁 \e[0m Search through Notes using Recoll"
|
|
echo -e " 🏷 \e[1;33m tags \e[0m \e[1;34m ┊┊┊ \e[0m Use TMSU to work with tags"
|
|
echo -e " 🔧 \e[1;34m tools \e[0m \e[1;34m ┊┊┊ \e[0m Tools for Editing"
|
|
echo -e " 📝 \e[1;35m export \e[0m \e[1;34m ┊┊┊ \e[0m Export Notes to Different Formats "
|
|
echo -e " ⎋ \e[1;36m convert \e[0m \e[1;34m ┊┊┊ \e[0m Convert Clipboard Contents to Different Formats "
|
|
echo -e " 🧰 \e[1;37m misc \e[0m \e[1;34m ┊┊┊ \e[0m Miscelanneous Tools nice to have on hand "
|
|
echo -e " 🌏\e[1;92m publish\e[0m \e[1;34m ┊┊┊ \e[0m Publish with \e[1;34m \e[4m\e[3mMkDocs\e[0m\e[0m🐍"
|
|
echo -e " 🕮 \e[1;92m preview \e[0m \e[1;34m ┊┊┊ \e[0m Preview with \e[1;34m \e[4m\e[3mMarkServ\e[0m\e[0m "
|
|
echo
|
|
echo -e " \e[3m\e[1m• Legend\e[0m "
|
|
echo
|
|
echo -e " 🎆: Executes a command, a Suffixed -h argument will print help"
|
|
echo -e " 📁: Prints another Menu"
|
|
echo
|
|
}
|
|
|
|
# ** Main Arguments - Level 0
|
|
#
|
|
arguments () {
|
|
|
|
while test $# -gt 0
|
|
do
|
|
case "$1" in
|
|
--help) mainHelp && exit 0
|
|
;;
|
|
-h) mainHelp && exit 0
|
|
;;
|
|
find) shift; NoteFind -d "${NOTES_DIR}" "${@:-}" ## Don't steal function name
|
|
;;
|
|
search) echo "begin note search"
|
|
;;
|
|
tags) echo "begin tags"
|
|
;;
|
|
tools) echo "begin tools"
|
|
;;
|
|
export) echo "begin export"
|
|
;;
|
|
convert) echo "begin convert"
|
|
;;
|
|
misc) echo "begin misc"
|
|
;;
|
|
publish) echo "begin publish"
|
|
;;
|
|
preview) echo "begin preview"
|
|
;;
|
|
--*) >&2 echo "bad option $1"
|
|
;;
|
|
*) >&2 echo -e "argument \e[1;35m${1}\e[0m has no definition."
|
|
;;
|
|
esac
|
|
shift
|
|
done
|
|
}
|
|
|
|
# *** Find
|
|
|
|
function NoteFind() {
|
|
|
|
NoteFind.sh "${@:-}"
|
|
exit 0
|
|
}
|
|
|
|
mytest() {
|
|
echo "This is a test"
|
|
exit 0
|
|
}
|
|
|
|
|
|
main "${@}"
|