[OPEN-ILS-DEV] Rewrite of build-db.sh

Dan Scott denials at gmail.com
Tue Jul 15 09:05:21 EDT 2008


2008/7/15 Aaron Joyner <aaron at joyner.ws>:
> The attached patch is a rewrite of build-db.sh.  I originally intended to
> just make it gracefully handle missing files, but I got on a roll.  A break
> down of changes, by bullet points:
> - validate that the fts-config.sql script exists for the specified database
> version
> - if it does not, detect the latest available version, warn the user,
> suggest aborting, offer to continue w/ the latest available version
> - rework call of psql to avoid PGPASSWORD on the command line, visible via
> ps
> - warn user if psql fails attempting to import any of these files for
> reasons such as couldn't connect, or file not found (not sql script errors)
> - provide commented out option to fail on sql script errors, for future
> convenience when the scripts run cleanly w/o errors
> - limit line length to 80 characters (a nearly unbreakable habit from work)
>
> There aren't a large number of shell scripts in the depot, the only thing
> which had a sufficiently large amount of style to go by was
> Open-ILS/examples/oils_ctl.sh.  I adopted that commenting and indenting
> style, if that's not an appropriate example, please provide suggestions or
> pointers to a style guide.  oils_ctl.sh is a bash script, but build-db.sh
> originally defined #!/bin/sh, so I opted to avoid the few bash style
> elements from oils_ctl.sh that caught my eye (function foo()..., for
> example), and leave it as a /bin/sh script, figuring it's better for
> compatibility.
>
> I've endeavoured to follow the submitting doc as closely as possible
> (http://open-ils.org/documentation/contributing.html#Submitting%20a%20Patch),
> but if I'm missed anything, or you require any additional information, just
> let me know.
>
> Thanks for the interesting project!  I look forward to contributing more
> code in the future.
> Aaron S. Joyner
>

Hah! This is really great, Aaron - I've thought about overhauling
build-db.sh a few times but never given it a go.

Sadly, we may have a bit of a collision in one small area, as I
committed an initial PostgreSQL 8.3 full text search schema to trunk
about 8 hours ago - so if a user doesn't specify a PostgreSQL version
for your script, they'll get 8.3 (and probably suffer ignominous
failure).

The approach I had been thinking about was using the database
credentials to do an initial login to the database to grab the server
version (SHOW server_version or SHOW server_version_num, whichever is
easier to parse) and use that to take the decision out of the user's
hands. Or at least provide a sanity check.

Would you be interested in taking a crack at refining your patch in
this fashion?

Thanks a ton, Aaron (even if you decide not to tackle that)!

-- 
Dan Scott
Laurentian University


More information about the Open-ils-dev mailing list