mainline(1) command line interface to Dosage


mainline [options] module [module...]


mainline is a command line interface to Dosage. Dosage is a an application designed to keep a local 'mirror' of specific web comics and other picture-based content, such as 'Picture Of The Day' sites, with a variety of options for updating and maintaining collections.


-b PATH, --base--path=PATH
Specifies a base path to put comic subdirectories. The default is 'Comics'.
Specifies the base URL for output events. The default is a local file URI.
-c, --catch-up
Traverses all available strips until an (identical) existing one is found. This can be useful if your collection was previously up to date, but you've missed a few days worth of strips. Alternatively you can specify -c twice for a 'full catchup', which will not stop until all comics have been traversed. Catchups can 'resumed' by using the index syntax, see the INDEX SYNTAX and SPECIAL SYNTAX sections for more information.
-h, --help
Output brief help information.
-l, --list
List available comic modules in multi-column fashion.
List available comic modules in single-column fashion.
-m MODULE, --module-help=MODULE
Output module-specific help for MODULE.
-o OUTPUT, --output=OUTPUT
OUTPUT may be any one of the following:

text - Provides no additional output and is the default value.

html - Writes out an HTML file linking to the strips actually downloaded in the current run, named by date (ala dailystrips). The files can be found in the 'html' directory of your Comics directory.

rss - Writes out an RSS feed detailing what strips were downloaded in the last 24 hours. The feed can be found in Comics/dailydose.xml.

rss - Writes an RSS feed with all of the strips downloaded during the run, for use with your favourite RSS aggregator.
-p, --progress
Display a progress bar while downloading comics.
-q, --quiet
Decrease the output level by one with each occurence.
-t, --timestamps
Print timestamps for all output at any level.
-v, --verbose
Increase the output level by one with each occurence.
-V, --version
Display the version number. module At least one valid module must be specified. A list of valid modules can be found by passing the -l option. Multiple module arguments can be specified on the command line.


One can indicate the start of a list of comma seperated indices using a ':'.

If -c is specified with index syntax then 'resume' mode is activated, where a 'catchup' will start at the given index.

Refer to EXAMPLES for samples.


Some users may find certain comics offensive and wish to disable them. Modules listed in /etc/dosage/disabled and ~/.dosage/disabled will be disabled. These files should contain only one module name per line.


This expands to mean all the comics currently in your 'Comics' directory.
This expands to mean all the comics available to Dosage.

INDEX SYNTAX can be used with SPECIAL SYNTAX but this is unlikely to be useful.


Retrieve the latest Mega Tokyo comic:
mainline MegaTokyo

Retrieve every strip from every comic that there is a module for:

mainline -c @@

Retrieve all Penny Arcade strips from (and including) a given index to the beginning regardless of whether they already exist or not:

mainline -c PennyArcade:2004-07-22


mainline will use the specified HTTP proxy whenever possible.


Should retrieval fail on any given strip mainline will attempt to retry. However the retry information is only outputted in the second and successive output levels.

At the time of writing, a complete Dosage collection weighs in at around 3.0GB.


See for a list of current development tasks and suggestions.


Disables comic modules on a global scale.
Disables comic modules on a local scale.


mainline and Dosage were written by Jonathan Jacobs <[email protected]> and Tristan Seligmann <[email protected]>. This manual page was written by Jonathan Jacobs.