Home library catalogue system, written in Perl.
Perl CSS Shell
Latest commit 414d855 Mar 1, 2015 @wdenton Fix Cutter sorting
L5 > L423 as Cutter numbers, so sort the number parts as strings,
not numbers.
Failed to load latest commit information.



I wrote this early in 2001 so I could manage my personal library.
That was BEFORE I went to library school.  There were a couple of
programs out there for managing personal libraries, but none suited my
needs, so I wrote this.  I had never taken a cataloguing course, knew
nothing about MARC records, and wasn't a very good programmer.  (The
first two changed, the third is still true.)  

If I were doing this again I'd do it very differently, or I might not
do it at all.  I might use LibraryThing to manage my collection.  If I
wrote something for myself I'd use Python or Ruby with a good web
framework.  But I did this in 2001, before any of that, and I've used
it ever since, and it does its job: I know what I have and where it

I don't expect any interest in this, but I'm putting it on GitHub to
make my life easier, and because there's no reason to keep it private.

Warning:  This is not good Perl.


Since I don't expect anyone to actually run this these instructions
are not overly helpful.

How to set up your web server

Set up the hostname 'library' in your DNS.  I use /etc/hosts and have
it at the same IP number as my local machine. Because Apache will be
configured to look for a virtual host with that name, this will work:

<VirtualHost *:80>
	ServerName library
	ServerAdmin webmaster@localhost

	DocumentRoot /var/www/library/
	<Directory /var/www/library/>
		AddHandler cgi-script .cgi
		Options ExecCGI FollowSymLinks MultiViews
		DirectoryIndex index.cgi
		AllowOverride None
		Order allow,deny
		Allow from all

	ScriptAlias /cgi-bin/ /var/www/library/cgi-bin/
	<Directory "/var/www/library/cgi-bin">
		AllowOverride None
		Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
		Order allow,deny
		Allow from all

	ErrorLog /var/log/apache2/library-error.log

	# Possible values include: debug, info, notice, warn, error, crit,
	# alert, emerg.
	LogLevel warn

	CustomLog /var/log/apache2/library-access.log combined

Put all of the Mrs. Abbott files into /var/www/library, set up Apache,
run 'apache2ctl restart', and everything will probably be OK.  If not
then a bit of fiddling will do it if you keep at it, I'm sure.

How to set up the database

Of course you'll also need to set up the database before you can
actually add or view any books.  First, create the database in MySQL:

# mysql -u root
> create user 'marion'@'localhost' identified by 'XXXXXX';
> create database library;
> grant all privileges on library.* to marion;
> quit;

Now create the tables and initial data.

TODO: [Put the default insert script here]