note note-0.3 by Thomas Linden, 01/2000 Introduction ============ This is a small console program written in perl, which allows you to manage notes similar to programs like "knotes" from commandline. This version is completely rewritten and it is able to display colored output. You can add, edit, list and delete as many notes as you want. The notes are stored in a binary database. Unlike previous versions of note this version don't need a database server. All you need is perl and this script (and, of course, some free disk space for the file...). Requirements ============ You need the following things: o perl installed (5.004x) o The module IO::Seekable, which should be already installed with your perl distributuion. Installation ============ Simple: Copy it to a place inside your $PATH, probably as root. (for example to /usr/bin). Configuration ============= This version of note doesn't neccessarily need a configuration file. But you can have one and change some default values. Take a look to the file noterc provided with this tarball. There are detailed instructions about every available parameter. Usage ===== If you don't know, how to run note, try "note -h" first. It will tell you all available commandline options. To create a new note, simply run "note". You can enter the note (the length is by default limited to 1024 bytes, which you can change from your config file). End by typing a . on a line itself. note will tell you the number of the note. If you want to view the note, type "note 1", if the notenumber was 1. If you want to get an overview of all notes, type "note -l". You will get a list of all notes, containing the number, the first line and the creation date. To edit a certain note, type "note -e 1". It will invoke your editor (vi or pico). You can edit it, after saving, note will store the changed note to the database. Of course you can drop a certain note: "note -d 1" deletes note number 1. If a note in the middle or the beginning of the database will be deleted, note will recount the other existent notes. For example there are 3 notes, number 1, 2 and 3. If you delete number 2, then number 3 will become number 2. If you cannot remember, which note you are looking for, you can use the search capability of note: "note -s ". note will search the whole note database case insensitive for an occurence of this string and tell you the number and first- line it have. Format of the notedb ==================== The database where the notes are stored is a binary file of the following format: It consists of three fixed length fields per entry. The fields have the following types: o Number: Integer (1 byte) o Note: String (default 1024 bytes) o Time: String (default 64 bytes) You can change the sizes of the fields "Note" and "Time" in the configfile "~/.noterc". If it does not exist, the above defaults will be used. If the data to be stored is smaller then the size of the field, it will be filled with ZERO's ("\0"). The Note and the Time fields will be uuencoded before storage. Of course, this is no security, never mind... Security ======== If you want to protect the notedb against unauthorized persons (even root), you might want to use pgp. I use gpg (GNU privacy guard), which is compatible to pgp, usage should be similar. You could add a function to your .profile or .bashrc or whatever: --- snip --- function note { gpg -o ~/.notedb -d ~/.notedb.gpg note $1 $2 $3 gpg -e ~/.notedb --yes -r username rm -rf ~/.notedb } --- snip --- You should replace with your real username. After applying this function to your .profile, issue the following command: "source .profile" You shell will reread the file, so you can try it out without the need of new login. This function assumes, there exists a file called "~/.notedb.gpg", therefore you need to encrypt your notedb once before you can use this funcion: "gpg -e ~/.notedb --yes -r username" If you don't make use of encryption, I suggest you to chmod it: "chmod 600 .notedb" So, only you can read the file (and root or any intruder who became root). Comments ======== You can send any comments to Thomas Linden . License ======= This program is GPL. Author ====== The author is Thomas Linden. Last changed ============ 09.01.2000