#!/bin/sh ########################################################################### # # update_handle_prefix # # Version: $Revision$ # # Date: $Date$ # # 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 updating a handle prefix (e.g. when moving from development # to production). Must be run as the dspace database user or equivalent. # # NOTE: Currently only compatible with installs running a PostgreSQL database # # validation and tool checking if [ ! "$1" -o ! "$2" ] then echo echo "Usage: update_handle_prefix " echo exit 1 fi which awk > /dev/null if [ $? -ne 0 ] then echo echo "awk not found in your path, please add to your path before running this script" echo exit 1 fi which psql > /dev/null if [ $? -ne 0 ] then echo echo "psql not found in your PATH, please add to your PATH and re-run script" echo exit 1 fi # start the update echo "If you continue, all handles in your repository with prefix $1 will be updated to have handle prefix $2" echo -n "Continue? [y/n]: " read choice if [ "$choice" = y -o "$choice" = Y ] then # get the length of the old prefix for use in the overlay function oldPrefixLen=`echo $1 | awk '{print length($1)}'` echo "update handle set handle=overlay(handle placing '$2' from 1 for $oldPrefixLen) where handle like '$1%';" | psql break else echo echo "Update cancelled" echo break fi