Files
DSpace/dspace/bin/update-handle-prefix
2006-02-10 01:01:31 +00:00

94 lines
3.0 KiB
Bash
Executable File

#!/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 <old handle> <new handle>"
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