Newer
Older
note / note
#!/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