#!/bin/bash
author="Livila"
version="2.0"
filename=~/notefile
para="$1"
if [ "$1" == "--setfile" ]; then
# Check if the file location is entered, exit if not.
if [[ -z $2 ]]; then
exit 1
fi
filename=$2
para=$3
fi
# Check if there is any arguments, if there is append all of it.
case "$para" in
--less)
less $filename
exit 1
;;
--edit)
vi $filename
exit 1
;;
--vi)
vi $filename
exit 1
;;
--gedit)
gedit $filename
exit 1
;;
--location)
echo "$filename";
exit 1
;;
--author)
echo "The author of this program is $author.";
exit 1
;;
--version)
echo "Version $version";
exit 1
;;
--help)
echo -e 'Usage:
note [--setfile <filepath>] [--less|--vi|--gedit|--help|--author|--version]
Commands:
--setfile: Set new temporary location of file
--less Show contents using "less"
--vi Edit contents using "vi"
--gedit Edit contents using "gedit"
--location Show file location
--help Show this help message
--author Show the author
--version Show current version
Examples:
note
Will open the note and save the notes to '$filename'.
note --setfile <filepath>
Will open note just as before, but using <filepath> instead.
note --setfile <filepath> --less
Will show <filepath> using the less command.
';
exit 1
;;
"")
date >> $filename
if [ "$1" == "--setfile" ]; then
# Start from the third input parameter and write to the file.
echo "${@:3}" >> $filename
else
# Write all parameters entered to the file.
echo "$@" >> $filename
fi
exit 1
;;
# Comment it out case it comes to use later.
# *)
# echo "That command does not exist. Write --help to know more.";
# exit 1
esac
echo 'Enter input or type :exit or :q to exit. :less to show contents.'
read input
saveDateOnce=0
# Loop until :exit or :q is entered.
while [ "$input" != ":exit" ] && [ "$input" != ":q" ]; do
# In case you want to have a quick overview of your text.
if [ "$input" == ":less" ]; then
less $filename
else
# Check if the date has been saved.
if [ $saveDateOnce == 0 ]; then
date >> $filename
saveDateOnce=1
fi
echo "$input" >> $filename
fi
read input
done