The htsn package

[Tags: gpl, program]

Usage:

htsn [OPTIONS] [HOSTNAMES]

The Sports Network http://www.sportsnetwork.com/ offers an XML feed containing various sports news and statistics. The goal of htsn is to watch the XML feed and parse the individual XML documents into files.

Once started, we will choose an XML feed host to connect to. The choice is made from a list in a round-robin fashion, and by default, the list contains all known TSN feed hosts. Once we have a connection, your username and password are sent. If they are accepted, we begin to parse the feed saving all XML files to the configured output directory (see --output-directory).

If we encounter an error (say, the connection is dropped), then we will attempt to connect to the next host in the list after waiting five seconds. This process continues indefinitely.

The program can run either interactively (that is, outputting to the console), or as a daemon with the --daemonize flag.

Input:

The program takes no input; a username and password must be supplied on the command-line or in a configuration file.

Output:

Output is not generated when running as a daemon; otherwise, standard out and standard error are fairly noisy. All traffic between htsn and the feed server is displayed on stdout. Status messages are interspersed when they are generated with warnings and errors going to stderr. The following can be expected:

Logging:

Logging is done either to syslog or a file. The destination and verbosity are controlled by the --log-file, --log-level, and --syslog parameters which may be specified either on the command line or in the configuration file.

Options:

--daemonize, -d

Run as a daemon, in the background. When running as a daemon the --pidfile, --run-as-group, and --run-as-user flags become relevant.

Default: disabled

--log-file

If you specify a file here, logs will be written to it (possibly in addition to syslog). Can be either a relative or absolute path. It will not be auto-rotated; use something log logrotate for that.

Default: none

--log-level

How verbose should the logs be? We log notifications at three levels: INFO, WARN, and ERROR. Specify the "most boring" level of notifications you would like to receive (in all-caps); more interesting notifications will be logged as well.

Default: INFO

--output-directory, -o

To which directory should we write the XML files?

Default: .

--password

The password associated with your TSN username. A password is required, so you must supply one either on the command line or in a configuration file.

Default: none

--pidfile

(Daemon mode only) Create a PID file in the given location. This is used by the init system on Unix to keep track of the running daemon. Its parent directory must be writable by the user/group that we will run as!

Default: /run/htsn/htsn.pid

--run-as-group

(Daemon mode only) Run as the given system group. The PID file is written before privileges are dropped, so the only privileges needed by htsn are those necessary to write the XML files and (optionally) the log file.

Default: the current group

--run-as-user

(Daemon mode only) Run as the given system user. The PID file is written before privileges are dropped, so the only privileges needed by htsn are those necessary to write the XML files and (optionally) the log file.

Default: the current user

--syslog, -s

Enable logging to syslog. On Windows this will attempt to communicate (over UDP) with a syslog daemon on localhost, which will most likely not work.

Default: disabled

--username, -u

Your TSN username. A username is required, so you must supply one either on the command line or in a configuration file.

Default: none

Feed Hosts:

It is possible to pass a list of feed hostnames on the command-line (see [HOSTNAMES] in the synopsis). By default htsn will attempt to connect to every known TSN XML feed host in a round-robin fashion, so there is rarely a need to do this.

Configuration File:

Any of the command-line options mentioned above can be specified in a configuration file instead. We first look for "htsnrc" in the system configuration directory (/etc on Unix). We then look for a file named ".htsnrc" in the user's home directory. The latter will override the former.

The file's syntax is given by examples in the htsnrc.example file (included with htsn).

Options specified on the command-line override those in either configuration file.


Properties

Versions0.0.1, 0.0.2, 0.0.3, 0.0.4, 0.0.5, 0.0.6, 0.0.7, 0.0.8, 0.0.9, 0.0.10, 0.0.11, 0.1.0
Dependenciesansi-terminal (==0.6.*), base (==4.*), cmdargs (>=0.10.6), configurator (==0.2.*), directory (==1.2.*), filepath (==1.3.*), hdaemonize (==0.4.*), hslogger (==1.2.*), hxt (==9.3.*), MissingH (==1.2.*), network (==2.4.*), tasty (==0.5.*), tasty-hunit (==0.4.*), transformers (==0.3.*), unix (==2.6.*)
LicenseGPL-3
AuthorMichael Orlitzky
MaintainerMichael Orlitzky <michael@orlitzky.com>
CategoryUtils
Source repositoryhead: git clone http://michael.orlitzky.com/git/htsn.git -b master
Executableshtsn
Upload dateTue Dec 24 02:49:18 UTC 2013
Uploaded byMichaelOrlitzky
Downloads521 total (97 in last 30 days)

Downloads

Maintainers' corner

For package maintainers and hackage trustees