#!/bin/bash -eu #% mksite -- driver for mkhtml, cpio, autoftp, and telnet VERSION='$Revision: 1.12 $'; copyleft () { cat <"$HOME/$ARCHIVE"; } find_newer() { if [ -e "$FTP_LOG" ]; then find_new $2 -newer "$FTP_LOG" | $1 2>&1| tee "$TMP_FILE" else find_new $2 | $1 2>&1| tee "$TMP_FILE" fi } error () { echo "$1" >&2; [ -z "$TMP_FILE" ]||rm -f "$TMP_FILE" exit 1; } sig () { error "terminating on signal $1"; } TMP_FILE=; F_ARCH=; F_TELN=; LIST=; O_MKHTML=; F_FTP=; OPT_SITE="aC:fH:L:tx"; trap 'sig ERR' ERR; [ "$TMPDIR" ]||TMPDIR="/var/tmp"; if [ $# -eq 1 ]; then case $1 in --version) mksite_version; exit 0;; --help) mksite_help; exit 0;; *) ;; esac fi [ -r "$CONFIG_FILE" ]&&source "$CONFIG_FILE" while getopts :$OPT_SITE OPTION; do case $OPTION in a) F_ARCH=y;; C) [ -r "$OPTARG" ]&&source "$OPTARG";; f) F_FTP=y;; L) LIST="$LIST $OPTARG";; H) O_MKHTML="$OPTARG";; t) F_TELN=y;; x) set -x;; :) error "option '-$OPTARG' missing an argument";; \?) error "invalid option: -$OPTARG";; *) error "internal error";; esac done TMP_FILE="$TMPDIR/mksite.$$" hash mkhtml autoftp cpio|| { echo "check PATH=$PATH">&2; exit 1;} if [ "$O_MKHTML" ]; then mkhtml $O_MKHTML; fi if [ "$F_ARCH" -o "$F_TELN" -o "$F_FTP" ];then eval $CONNECT fi if [ "$F_FTP" -o "$F_ARCH" ];then echo "press enter to ftp" read junk; cd "$PUBLIC_HTML" rm -fv "`find . -name 'core*'`" if [ "$F_ARCH" ];then find_newer cpio_prog "" cd; ftp_arc "$ARCHIVE" | tee -a "$TMP_FILE"; cd -; else find_newer ftp_prog "-type f" fi echo "what to do with log (saving sets date time stamp)" select ACT in save view quit save_and_quit; do case $ACT in save) cp -v "$TMP_FILE" "$FTP_LOG";; view) less "$TMP_FILE";; quit) break;; save_and_quit) cp -v "$TMP_FILE" "$FTP_LOG"; break;; *) ;; esac done fi if [ "$F_TELN" ];then eval $TELNET_CMD; fi if [ "$F_ARCH" -o "$F_TELN" -o "$F_FTP" ]&&[ "$DISCONNECT" ]; then eval $DISCONNECT fi rm -f "$TMP_FILE";