View on GitHub

IRAF Community Distribution

IRAF maintained by the community

Home | Installation | Packages | X11IRAF | PyRAF | Forum

Error when trying to create private package help database!

H.J. van Heerden wrote on Nov 01, 2006

Hi All

This error has been bugging me for the last week. :x :?

I've been working through "An introductory user's guide to iraf scripts" by R. Seaman. Im basically completed the guide. I have written scripts (that work), and I have gone through the whole private package creation procedure.

I've defined the package, tasks, scritpts, and enc. in the correct files, and the loginuser.cl file as according to the guide.

When I load the ecl, and then the package, it loads without any errors. And the packages work. The problem comes in when I want to view the help files.

I've set up the directory for my private package as follows:
/iraf/extern/scripts/ -- The scripts and support files reside here.
/iraf/extern/scripts/doc/ -- The .hlp files reside here.

I used the softools packages, mkmanfile and mkhelpdb to create the help database.

The ERROR that I recieve when I want to call the help for the package is:

Cannot open help database file scripts$private.db
ERROR: invalid help database file list


(with scripts set as "/iraf/extern/scripts/" the path to the files)

I've worked through the whole procedure for creating your own private package a number of times. I have even looked at how the files and procedures work for other packages (tables, stdas), but I can't figure where the ERROR is.

I need HELP please!!!!

Regards
Pat

Mike Fitzpatrick wrote on Nov 01, 2006

Pat,

I'd have to see your 'scripts.hd' file and the contents of the scripts$lib directory (assuming you have one) to give a detailed reply. In most packages we build the help database is configured to be something like scripts$lib/helpdb.mip, is the output of your MKHELPDB the 'private.db' file in the scripts$ directory (i.e. is this simply a pathname error?)? The relevant files for creating a helpdb are normally

scripts$script.hd
scripts$lib/root.hd
scripts$lib/rootscripts.hd

(e.g. see the NOAO package). The 'invalid help database file list' is printed when the 'helpdb' string contains no files, so check also how that is declared. You can try doing a

cl> reset helpdb = "scripts$private.db"


to first validate your package helpdb works. The helpdb variable is normally defined in the hlib$extern.pkg file, a common mistake is to forget a comma or newline escape but its also possible to rewrite this value other ways, do a "show helpdb" to verify this is a comma-delimited list of files. Post more information if you're still stuck.

Cheers,
-Mike

H.J. van Heerden wrote on Nov 01, 2006

Hi Mike

Hope you can help me once more.

I've looked at how you set up the NOAO package, and I've reconfigured my private package along the same lines.

I've included it in extern.pkg, and Iraf now picks' up the package, and it works.
I am able to run the scripts defined in the package, I can view the source file using "help option".

The only problem is. Iraf tells me that "NO" help files are available. Somehow it doesn't pick up the .hlp files.

One of the scripts is the printit.cl defined in the GUIDE. Using this as a example:
Dir structure and content:
/iraf/extern/private/printit.cl
private.cl
private.hd
private.men
private.par
/iraf/extern/private/lib/printit.hlp
private.hlp
root.hd
rootprivate.hd
helpdb.mip

The private.hd has the following code

# Help directory for the PRIVATE package

$private	= "/iraf/extern/private/"

# Define help files for the tasks

center	hlp = private$lib/center.hlp,	src = center.cl
printit	hlp = private$lib/printit.hlp,	src = printit.cl


The root.hd has the following code
# Root help directory for PRIVATE

_private	pkg = private$lib/rootprivate.hd


I hope this gives you enough info to work with.
I really appreciate the help

Regards
Pat

Mike Fitzpatrick wrote on Nov 01, 2006

Pat,

Your first message indicated the .hlp files were in /iraf/extern/scripts/doc, however your .hd file says e.g. "private$lib/center.hlp". Unless you've moved the files, I think you just need to change this to read "private$doc/center.hlp". The help database doesn't actually contain the help files, just a pointer to the file on disk (i.e. once the helpdb.mip has been created you can edit the .hlp file and not have to rebuild the database).

Cheers,
-Mike

H.J. van Heerden wrote on Nov 01, 2006

Hi Mike.

I sat down and calmly worked through everything. AND I picked up my errors.

One was a incomplete pathway statement.
The other was that I did not complete the .hlp files correctly, thus Iraf give me an help file block error. Sorted that one out.

Now everything WORKS correctly. I have my own private package!

THANX for the Guidance!

Regards
Pat

Last post on Nov 01, 2006