summaryrefslogtreecommitdiff
path: root/sgml-register-catalog
diff options
context:
space:
mode:
Diffstat (limited to 'sgml-register-catalog')
-rw-r--r--sgml-register-catalog139
1 files changed, 139 insertions, 0 deletions
diff --git a/sgml-register-catalog b/sgml-register-catalog
new file mode 100644
index 0000000..50a6726
--- /dev/null
+++ b/sgml-register-catalog
@@ -0,0 +1,139 @@
+#!/bin/bash
+# Copyright (C) 2002 by SuSE Linux AG.
+# Author: Karl Eichwalder <ke@suse.de>, 2002.
+# This program is under GPL license. See COPYING file for details.
+# In part based on a script by Eric Bischoff <eric@caldera.de>
+
+# Set help message
+SGML_HELP_MESSAGE="Usage: `basename $0` [<option>] <action>\n\
+where <option> is:\n\
+ -d, --delegate Use DELEGATE instead of CATALOG\n\
+and where <action> is:\n\
+ -a, --add <CATALOG> Declare ordinary catalog in the centralized catalog\n\
+ -r, --remove <CATALOG> Remove ordinary catalog from the centralized catalog\n\
+ -h, --help Print this help message and exit\n\
+ -v, --version Print the version number and exit\n"
+
+# Set version message
+SGML_VERSION_MESSAGE="${0##*/} (sgml-skel version 0.6)"
+
+# Set type of pointer
+SGML_POINTER="CATALOG"
+
+# Set action to be performed
+SGML_ACTION=""
+
+# Set catalogs
+# SGML_CENTRALIZED=""
+SGML_ORDINARY=""
+
+# Process options
+case $1 in
+ -d|--delegate) SGML_POINTER="DELEGATE"; shift 1 ;;
+esac
+
+# Process actions
+case $1 in
+ -a|--add) SGML_ACTION="addition"
+ # SGML_CENTRALIZED=$2
+ SGML_ORDINARY=$2 ;;
+ -r|--remove) SGML_ACTION="removal"
+ # SGML_CENTRALIZED=$2
+ SGML_ORDINARY=$2 ;;
+ -h|--help) echo -e $SGML_HELP_MESSAGE ; exit 0 ;;
+ -v|--version) echo -e $SGML_VERSION_MESSAGE ; exit 0 ;;
+ *) echo -e $SGML_HELP_MESSAGE >&2 ; exit 1 ;;
+esac
+
+# Check that the super catalog can be created and changed and deleted
+if [ ! -w /etc/sgml ]; then
+ echo "`basename $0`: unable to write in /etc/sgml." >&2
+ exit 2
+fi
+case $SGML_ACTION in
+ addition)
+ if [ -e /etc/sgml/catalog -a ! -w /etc/sgml/catalog ]; then
+ echo "`basename $0`: can not modify \"/etc/sgml/catalog\"." >&2
+ exit 2
+ fi
+ ;;
+ removal)
+ if [ ! -w /etc/sgml/catalog ]; then
+ echo "`basename $0`: can not modify \"/etc/sgml/catalog\"." >&2
+ exit 2
+ fi
+ ;;
+esac
+
+# # Check that the centralized catalog can be created, changed and deleted
+# if [ -z "$SGML_CENTRALIZED" ]
+# then
+# echo -e $SGML_HELP_MESSAGE >&2
+# exit 1
+# fi
+# case $SGML_ACTION in
+# addition)
+# if [ -e $SGML_CENTRALIZED -a ! -w $SGML_CENTRALIZED ]
+# then
+# echo "`basename $0`: can not modify \"$SGML_CENTRALIZED\"." >&2
+# exit 2
+# fi
+# ;;
+# removal)
+# if [ ! -w $SGML_CENTRALIZED ]
+# then
+# echo "`basename $0`: can not modify \"$SGML_CENTRALIZED\"." >&2
+# exit 2
+# fi
+# ;;
+# esac
+
+# Check that we have at least one ordinary package to process
+if [ -z "$SGML_ORDINARY" ]; then
+ echo -e $SGML_HELP_MESSAGE >&2 ; exit 1
+fi
+case $SGML_ACTION in
+ addition)
+ if [ ! -s $SGML_ORDINARY ]; then
+ echo "`basename $0`: \"$SGML_ORDINARY\" does not exist or is empty." >&2
+ exit 2
+ fi
+ ;;
+esac
+
+# Installation or removal of pointers
+case $SGML_ACTION in
+ addition)
+ # echo "`basename $0`: addition of $SGML_ORDINARY in $SGML_CENTRALIZED"
+ # if grep -q $SGML_ORDINARY $SGML_CENTRALIZED 2>/dev/null
+ # then
+ # echo "Warning: $SGML_ORDINARY is already installed in the centralized catalog $SGML_CENTRALIZED" >&2
+ # else
+ # echo "$SGML_POINTER $SGML_ORDINARY" >> $SGML_CENTRALIZED
+ # fi
+ grep -q -e "\<$SGML_ORDINARY\>" /etc/sgml/catalog 2>/dev/null
+ if [ $? -ne 0 ]; then
+ echo "`basename $0`: addition of $SGML_ORDINARY in /etc/sgml/catalog"
+ echo "$SGML_POINTER \"$SGML_ORDINARY\"" >> /etc/sgml/catalog
+ fi
+ ;;
+ removal)
+ # echo "`basename $0`: removal of $SGML_ORDINARY from $SGML_CENTRALIZED"
+ # if grep -q $SGML_ORDINARY $SGML_CENTRALIZED 2>/dev/null
+ # then
+ # sed -e "\:$SGML_POINTER $SGML_ORDINARY:d" < $SGML_CENTRALIZED > ${SGML_CENTRALIZED}.new
+ # mv ${SGML_CENTRALIZED}.new $SGML_CENTRALIZED
+ # else
+ # echo "Warning: $SGML_ORDINARY was not found in the centralized catalog $SGML_CENTRALIZED" >&2
+ # fi
+ if [ ! -s $SGML_ORDINARY ]; then
+ # rm $SGML_ORDINARY
+ echo "`basename $0`: removal of $SGML_ORDINARY from /etc/sgml/catalog"
+ sed -e "\:$SGML_POINTER \"\?$SGML_ORDINARY\"\?\>:d" /etc/sgml/catalog \
+ > /etc/sgml/catalog.new
+ mv /etc/sgml/catalog.new /etc/sgml/catalog
+ fi
+ ;;
+esac
+
+exit 0