NAME

HORAE_UPDATE - A network updater for Athena, Artemis, and Hephaestus


SYNOPSIS

    horae_update [--force] [--proxy=<URL>] [--timeout=<seconds>]
                 [--mirror=<mirror>] [--auto] [--file=<tarball>]
                 [--prefix=<path>] [--help] [-h]

The horae_update script is used to check a web repository for the latest version of the horae package and download that package if it is more recent than what is installed on the local machine. This script can be run by hand from the command line or as a periodic, scheduled process (such as a cron job).

The script gets the listing of horae package releases from SourceForge and scrapes that web page for the most recent release. If the local machine needs to be updated, a SourceForge mirror will be contacted for downloading the package. Once downloaded, this script will upack the package and install it using the standard procedures for installing perl packages.

The full installation requires that the script is run as root. If run as a normal user, the package will be downloaded, upacked, and built, but not installed.

The script uses the LWP package, which is the set of Perl modules for doing network programming. If they are not found on the local machine, the CPAN module will be run in an attempt to download and install LWP. That requires running the script as root.

This is horae_update version 0.11.


COMMAND LINE OPTIONS

--help, -h
Write a note about the command line switches to the screen and quit.

--force
This causes the script to ignore the comparison between the currently installed version and the version on SourceForge. With this switch, the most recent version on SourceForge will be downloaded and installed regardless of the version on the local machine.

--proxy=<URL>
If the local machine must connect to a proxy, use this command line argument to specify the proxy server. The argument should be the URL of the proxy server.

--timeout=<time_in_seconds>
Set the timeout for the user agent. The default is 30 seconds. After this time, the agent will give up on the current SourceForge server and try the next one in the list. If you make this too short, it is possible that no server will work. If you make it too long, you may get bored waiting for the updater to finish. You may consider setting this longer than 30 seconds if you are in a continent without a SourceForge server.

--mirror=<site>
Specify a SourceForge server known to carry the tarball. This flag can be used to avoid the interactive step of choosing the mirror from the list of available mirrors. If the tarball is not carried by that server, the interactive step will happen. See the --auto flag for another way of avoiding the interactive step.

--auto
If the tarball is not found at the selected mirror, SourceForge returns a web page asking for a selection from a list of mirrors that do have the tarball. The default behavior of the script is to present a menu asking you to choose from the available servers. If horae_update is run with the --auto flag, it will loop through the available servers until the tarball is found. The advantage of the --auto flag is that is makes horae_update suitable for a cron job. The disadvantage is that it may try to grab the tarball from someplace very distant. If you run the updater by hand, I recommend you not use this flag. If you run it as a cron job, you must use this flag.

--file=<file>
If you have downloaded the latest package by some other means, you can specify it with this argument. In that case, the downloading is skipped and this file is unpacked, built, and installed.

--prefix=</installation/path>
If you want the horae package installed to a particular location, use this command line argument. It's value is passed along to Makefile.PL, which will use this as the installation location and write out short scripts for inclusion in your login scrips.


TO DO

  1. Use Archive::Tar rather than a system call for unpacking the tarball. Note that A::T has been installed if the CPAN has been installed.


RELEASE HISTORY

  0.11 (11 December 2005) Using RSS file from SF to determine current
       version number.  Modified interaction with mirrors.  Tweak
       screen scraper for determining mirrors carrying tarball.
  0.10 (14 September 2005) Added a --prefix flag that gets passed
       along to Makefile.PL
  0.9  (25 April, 2005) Added a screen scraper to present a menu of
       available mirrors if the default does nothave the tarball.
       Added the --auto flag.
  0.8  (13 October 2004) Fixed a print-related bug that prevented the
       script from doing the "make install" step.  Removed the --devel
       switch.
  0.7  (3 August, 2004) Update to include new SF servers.  Cycle
       through SF servers looking for one that answers.  Added a
       configurable timeout.  Added the --devel switch.
  0.6  (25 May, 2004) Switch to LWP::UserAgent and add --proxy
       argument, use SourceForge rather than Univ. of Washington for
       downloads, add --mirror argument, wrote a pod
  0.5  (12 April, 2004) Handle installed versions with rc in their
       version numbers
  0.4  (11 December, 2003) Changed some language and added markup so
       that the log can be read efficiently using outline-mode in emacs
  0.3  (6 May, 2003) Compare version numbers on local host and on
       server, also check to see if a tarball is already in CWD, allow
       several options (--help, --force, and --file) using Getopt::Long,
       test return value of system call to unpack archive
  0.2  (31 January, 2003) Use getstore function and check HTTP status,
       improved regex for distinguishing a tarball from any other file
       with the string "horae" in it
  0.1  (28 January, 2003) Initial release


AUTHOR

Bruce Ravel, bravel_REMOVE_THIS_@anl.gov

http://cars.uchicago.edu/~ravel/software/exafs/

copyright (c) 2004-2005 Bruce Ravel