#!/usr/bin/perl
#
#NAME
# htmlbkup - link html files into backup directories
#
#SYNOPSIS
# htmlbkup [dir]..
# htmlbkup `find . -type d`
#
#DESCRIPTION
# This is a kludge to make backups of .html files in a list of
# directories. The default is the current directory. We make sure
# there's a .html.$host subdirectory, and link all the *.html files
# into it. Then, after we unpack a tar kit, we can check to see if
# we need to restore any of the html files.
#
#ENVIRONMENT
# We get the hostname preferentially from the environment variables
# 'host' and 'HOST', in that order. If neither is defined, we call
# `hostname` and `uname -n` to discover what the machine is called.
#
#TODO
# We really should add a "recursive" feature. What I do now is:
# htmlbkup `find . -type d`
#
#AUTHOR
# Copyright 2001 by John Chambers
# You may use this for anything you wish, as long as you don't claim
# that you wrote it. If you add any cool features, let me know so I
# can add them to my copy.
$| = 1;
push @INC, "$ENV{HOME}/pm", "$ENV{HOME}/pl", "$ENV{HOME}/sh";
require "Backup.pm";
@ARGV = ('.') unless @ARGV;
($host = $ENV{'host'} || $ENV{'HOST'} || `hostname` || `uname -n`)
=~ s/[\s\r]+$//;
for $d (@ARGV) {
next if $d =~ /\/\.html/; # Don't back up .html directories
$d =~ s'^\.\/'';
print "$d:\n";
($h = "$d/.html.$host") =~ s'^\.\/''; # Path to backup directory
for $p (glob "$d/*.html") {
$p =~ s'^\.\/''; # Strip away ./ directory
($f = $p) =~ s".*/""; # File name minus directories
unless (-d $h) { # Does .html backup directory exist?
if (mkdir($h,0775)) {
print "$h created.\n";
} else {
print STDERR "$h not created [$!]\n";
}
}
print "$p\n" if $V>1;
&Backup("$h/$f") if -f "$h/$f";
system "/bin/cp -p '$p' '$h/$f'";
if ($?) {
print STDERR "$h/$f not copied (status $?)\n";
} else {
print "$p -> $h/$f\n";
}
# if (link($p,"$h/$f")) {
# print "$p -> $h/$f\n";
# } else {
# print STDERR "$h/$f not linked ($!)\n";
# }
}
}