#!/bin/sh ########################################################################### # # make-handle-config # # Version: $Revision: 1.2 $ # # Date: $Date: 2002/11/01 17:59:17 $ # # Copyright (c) 2002, Hewlett-Packard Company and Massachusetts # Institute of Technology. All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are # met: # # - Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # # - Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # # - Neither the name of the Hewlett-Packard Company nor the name of the # Massachusetts Institute of Technology nor the names of their # contributors may be used to endorse or promote products derived from # this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS # ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT # HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, # BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS # OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR # TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE # USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH # DAMAGE. # ########################################################################### # Shell script for writing a simple barebones configuration file for the # Handle server, with default options, unencrypted keys and connected # to the DSpace Handle plugin code. # Get the DSPACE/bin directory BINDIR=`dirname $0` echo "Writing simple Handle server configuration" # Read parameters from DSpace config dshostname=`$BINDIR/dsrun org.dspace.core.ConfigurationManager -property dspace.hostname` dsname=`$BINDIR/dsrun org.dspace.core.ConfigurationManager -property dspace.name` handle=`$BINDIR/dsrun org.dspace.core.ConfigurationManager -property handle.prefix` handledir=`$BINDIR/dsrun org.dspace.core.ConfigurationManager -property handle.dir` tempfile=/tmp/handleconfig$$ # Write the options to a file we can pipe into the setup tool echo "1" >$tempfile # 1 = non-caching server, 2 = caching server echo "" >>$tempfile # Primary server? Default = y (n = mirror server) echo $dshostname >>$tempfile # IP address echo "" >>$tempfile # Port to listen to (default=2641) echo "" >>$tempfile # Port for HTTP i/f to listen to (default=8000) echo "" >>$tempfile # Log all accesses? ("y" or "n", default=n) echo "" >>$tempfile # Version/serial no. of site (default=1) echo $dsname Handle Server >>$tempfile # Server description echo "" >>$tempfile # Block UDP access? ("y" or "n", default=n) echo "n" >>$tempfile # Do not encrypt server cert private key # OR do not overwrite old server cert private key echo "n" >>$tempfile # Do not encrypt admin private key # OR do not overwrite old admin private key # Now run Handle server config tool, and pipe our config in $BINDIR/dsrun net.handle.server.SimpleSetup $handledir < $tempfile >/dev/null # Remove temp file rm -f $tempfile # Now update server configuration (config.dct) with our handle prefix and the # DSpace Handle plugin sed 's/YOUR_NAMING_AUTHORITY/'$handle'/' <$handledir/config.dct >$tempfile # Remove original config file - will replace rm -f $handledir/config.dct # Insert our HandlePlugin - this awk script inserts these lines in the # server_config section: # "storage_type" = "CUSTOM" # "storage_class" = "org.dspace.handle.HandlePlugin" awk '/.*/ {print $0} /"server_config" = {/ {printf "\"storage_type\" = \"CUSTOM\"\n\"storage_class\" = \"org.dspace.handle.HandlePlugin\"\n\n",$0}' <$tempfile >$handledir/config.dct #sed 's/"server_config" = {/"server_config" = {\n"storage_type" = "CUSTOM"\n"storage_class" = "org.dspace.handle.HandlePlugin"/' <$tempfile >$handledir/config.dct #awk 'NR==1 {printf "%s\n\"storage_type\" = \"CUSTOM\"\n\"storage_class\" = \"org.dspace.handle.HandlePlugin\"\n\n",$0} NR!=1 {print $0}' <$tempfile >$handledir/config.dct # Remove temp file rm -f $tempfile