Help making a tasklog script

I am trying to create a program called tasklog that integrates with one of my online accounts, to keep track of what tasks I have been working on.
On login, I'd like it to display (up to) the five most recent entries, then ask me what I plan to work on during the new session. I then will type an answer, which will be stored in the log.

Example:
When I log in, I would like to be presented with the following:

--- tasklog ---
Hi,(name here).
The most recent task log entries are: (Up to five log entries printed here, in descending order of date.)
*** What do you plan to work on during this session? ***
At this point, I would like to enter a one-line description of what I will be working on, e.g.
Trying to get this task done, already!
After typing in my entry, it should be logged to the log file with date included, as in the examples below.
Then my script will just say:
Thanks!
, and I will be dropped at the command line.

Couple of specifics:

  • Write the script in file ~/bin/tasklog
  • Modify startup scripts so that tasklog will run immediately before I am presented with a command line.
  • The script needs to store log entries in file ~/.tasklog

If anyone could help me to make such a script that allows for this type of logging, I would be most grateful. Thanks to any and all who read this.

Hi.

We will always ask you to show what you have done so far ... cheers, drl

1 Like

Yes, I completely understand that perspective.
I am unfortunately currently stuck away from my main PC and am relying on mobile browsing to get this post out there, in hopes to have gotten some type of help on this by the time I return to my home computer. Which is where all of my failed attempts also reside. :o
I appreciate your time for at least reading and attempting to help and reply.
Thank you for that. Though I am hopeful that this may be easy enough for someone more knowledgeable then me, to help me soon, I will definitely try and post up what I have tried so far as soon as physically possible.
Thanks again to all who read this and especially anyone who can lend a hand.

Ok, here is what I have so far, but I am still pretty lost I think.
I'm still very much new to Bash and Unix.

#!/bin/bash

n=1
while read curline; do
    lasttasks[$n]=${curline}
    ((n++))
done < ~/.tasklog
if [ $n -le "6" ]; then
    n=6
fi
echo "Hi, Name Here"

for ((i=n-5;i<n;i++))
    do
        printf "%s\n" "${lasttasks}"
    done
echo "What do you plan on doing today?"
read myproj

mydate=`date +"%D %T"`
printf "%s: %s\n" "$mydate" "$myproj" >> ~/.tasklog

Here is how I would like the output to look.

* By logging in to this machine, you agree to adhere to...............

Last login: Sun Apr 03 17:19:00 2011 from dsl-xx-xxx-xxx-xx.dsl.pltnxx.sbcglobal.net
--- tasklog ---
Hi, Name Here....
The most recent task log entries are:
Sun Apr 03 17:16:02 PDT 2011: Testing my solution for blah blah
Sun Apr 03 17:16:49 PDT 2011: Having some entries so I can demonstrate how this should look...
Sun Apr 03 17:19:26 PDT 2011: Finishing the writeup for blah blah
*** What do you plan to work on during this session? ***
Not a whole lot, to be honest.
Thanks!
ts....@csc:~$ 

After this, file ~/.tasklog should have contents like:

Sun Apr 03 17:16:02 PDT 2011: Finishing the writeup for blah blah
Sun Apr 03 17:18:49 PDT 2011: Testing my solution
Sun Apr 03 17:19:26 PDT 2011: Having some entries so I can demonstrate how this should look...
Sun Apr 03 17:20:18 PDT 2011: Not a whole lot, to be honest.

---------- Post updated at 02:49 PM ---------- Previous update was at 12:11 PM ----------

So I am very close now to what I want to achieve.
I could use a little help though yet with my date format.

What I would like to see is this for each listed task:
Sun Apr 03 17:16:49 PDT 2011: Having some entries so I can demonstrate how this should look...

So I need to adjust something so that format doesnt show in there and would also like it to diplsay the day and times as shown in sample above.

Here is my entire current output upon script running at login,

Last login: Sun Apr 24 14:17:00 2011 from X7.xxx.25x.xxx
Hi, Joe Shmoe
04/24/11 11:57:22:
mydate=`date +"%D %T"`
04/24/11 14:11:45: Oh not a lot, just making sure I finally got this done right.
04/24/11 14:22:34: Just making up some small scripts

**** What do you plan to work on during this session? ****

Also just realized, I still haven't figured how to get it to say "Thanks" after I enter my task for todays session, and then drop me to command line.
As it is now, I answer and it then drops me to command line.
I know I need to echo "Thanks" in there, but not sure what or where to place it and if it needs something after.

---------- Post updated at 04:00 PM ---------- Previous update was at 02:49 PM ----------

Ok, I finally got it. :b:
Thanks to anyone who even read this.

Working as intended:

#!/bin/bash

echo "---TaskLog---"
n=1
while read curline; do
    lasttasks[$n]=${curline}
    ((n++))
done < ~/.tasklog
if [ $n -le "6" ]; then
    n=6
fi

echo "Hi, Joe Shmoe"

for ((i=n-5;i<n;i++))
    do
        printf "%s\n" "${lasttasks}"
    done
echo "**** What do you plan to work on during this session? ****"
read myproj

mydate=`date`
printf "%s: %s\n" "$mydate" "$myproj" >> ~/.tasklog
echo "Thanks"