Compare commits

...

2 Commits

Author SHA1 Message Date
c506348422 Reversed order of notes in 'notez' display 2025-05-09 15:38:53 -04:00
85464f66b3 Added new note functions (notez & noteb)
More robust notes functions to take quick notes in ZSH and Bash
2025-05-08 11:16:38 -04:00

View File

@@ -1,30 +1,82 @@
# Shell Functions
# Shell note pad
note () {
# if file doesn't exist, create it
if [[ ! -f $HOME/.notes ]]; then
touch "$HOME/.notes"
fi
# Shell note pad for Bash
noteb () {
local notes_file="$HOME/.notes"
local timestamp=$(date +"%F %T")
local input_line
if ! (($#)); then
# no arguments, print file
cat "$HOME/.notes"
if [[ $# -eq 0 ]]; then
# No arguments, display the notes file
tac "$notes_file"
return 0
elif [[ "$1" == "-a" ]]; then
# Add a note with prompting (using Bash's read -p)
read -r -p "$(date +"%F %T | ") " input_line
if [[ -n "$input_line" ]]; then
echo "$timestamp | $input_line" >> "$notes_file"
echo "Note added to $notes_file"
return 0
else
echo "No note entered."
return 1
fi
elif [[ "$1" == "-c" ]]; then
# clear file
echo -n "Clear notes file? [Y/N] "
read replace
if [ "${replace}" = "Y" ] || [ "${replace}" = "y" ]; then
echo "Emptying notes file..."
printf "%s" > "$HOME/.notes"
echo "Done."
else
echo "Notes file preserved."
fi
# Clear the notes file
read -r -p "Clear notes file? [Y/n] " clear_response
if [[ "$clear_response" =~ ^[Yy]$ ]]; then
> "$notes_file" # Truncate the file
echo "Notes file cleared."
else
echo "Notes file not cleared."
fi
return 0
else
# add all arguments to file
echo -n $(date +"%F %T | ") >> "$HOME/.notes"
printf "%s\n" "$*" >> "$HOME/.notes"
# Treat arguments as the note (default action if not -a or -c)
input_line="$*"
echo "$timestamp | $input_line" >> "$notes_file"
echo "Note added to $notes_file"
return 0
fi
}
# Shell Note Pad for ZSH
notez () {
local notes_file="$HOME/.notes"
local timestamp=$(date +"%F %T")
local input_line
if [[ $# -eq 0 ]]; then
# No arguments, display the notes file
cat "$notes_file"
return 0
elif [[ "$1" == "-a" ]]; then
# Add a note with prompting
read -r "?$(date +"%F %T | ") " input_line
if [[ -n "$input_line" ]]; then
echo "$timestamp | $input_line" >> "$notes_file"
echo "Note added to $notes_file"
return 0
else
echo "No note entered."
return 1
fi
elif [[ "$1" == "-c" ]]; then
# Clear the notes file
read -r "?Clear notes file? [Y/n] " clear_response
if [[ "$clear_response" =~ ^[Yy]$ ]]; then
> "$notes_file" # Truncate the file
echo "Notes file cleared."
else
echo "Notes file not cleared."
fi
return 0
else
# Treat arguments as the note (default action if not -a or -c)
input_line="$*"
echo "$timestamp | $input_line" >> "$notes_file"
echo "Note added to $notes_file"
return 0
fi
}