NAME
hxcopy - copy an HTML file and update its relative links
SYNOPSIS
hxcopy [ -i old-URL ] [ -o new-URL ] [ file-or-URL [ file-or-URL ] ]
DESCRIPTION
The hxcopy command copies its first argument to its second argument,
while updating relative links. The input is assumed to be HTML or XHTML
and may be slightly reformatted in the process.
If the second argument is omitted, hxcopy writes to standard output. In
this case the option -o is required. If the first argument is also
omitted, hxcopy reads from standard input. In this case the option -i
is required.
OPTIONS
The following options are supported:
-i old-URL
For the purposes of updating relative links, act as if old-
URL is the location from which the input is copied. If this
option is omitted, the actual location of the first argument
is used for calculating relative links.
-o new-URL
For the purposed of updating relative links, act as if new-
URL is the location to which the input is copied. If this
option is omitted, the actual location of the second argument
is used for calculating relative links.
EXAMPLES
Assume the HTML file foo.html contains a relative link to
"../bar.html". Here are some examples of commands:
hxcopy foo.html bar/foo.html
The file foo.html is copied to ../bar/foo.html and the relative
link to "../bar.html" becomes "../../bar.html".
hxcopy foo.html ../foo.html
The file foo.html is copied to ../foo.html and the relative link
to "../bar.html" is rewritten as "bar.html".
hxcopy -i http://my.org/dir1/foo.html -o http://my.org/foo.html
fil.html fil.html
The file fil.html is copied to fil.html and the relative
link to "../bar.html" is rewritten as "bar.html". A command like
this may be useful to update files that are later uploaded to a
server.
BUGS
Unlike the last argument of cp(1), the last argument of hxcopy must be
a file, not a directory.
The second argument must be a local file. Writing to a URL is not yet
implemented. To work around this, replace hxcopy file.html
http://example.org/file.html by hxcopy -o http://example.org/file.html
file.html tmp.html and then upload tmp.html to the given URL with some
other command, such as curl(1). The first argument, however, may be a
URL. hxcopy will download the given file. (Currently only HTTP is
supported.)
SEE ALSO
cp(1), curl(1), hxwls(1)