i.configmapconf revision 7c478bd95313f5f23a4c958a745db2134aa03244
#
# CDDL HEADER START
#
# The contents of this file are subject to the terms of the
# Common Development and Distribution License, Version 1.0 only
# (the "License"). You may not use this file except in compliance
# with the License.
#
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
# See the License for the specific language governing permissions
# and limitations under the License.
#
# When distributing Covered Code, include this CDDL HEADER in each
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
# If applicable, add the following below this CDDL HEADER, with the
# fields enclosed by brackets "[]" replaced with your own identifying
# information: Portions Copyright [yyyy] [name of copyright owner]
#
# CDDL HEADER END
#
#
#pragma ident "%Z%%M% %I% %E% SMI"
#
#
# Copyright (c) 2001 by Sun Microsystems, Inc.
# All rights reserved.
#
# Note that this script imposes restriction on the format of the new file
# that is delivered by the package.
# The format has to be:
# selection=enable idvendor=16 idproduct=32 cfgndx=1;
# Each record is a separate line, all single spaces, and all values in
# decimal
#
hex2dec()
{
}
export TMP_FILE
do
# Now merge the contents of the old and the new CONF_MAP file.
# src is the new file that this package is installing, and dst is the
# file present on the system.
# The algorithm to merge them is simple. We skim and filter out those entries
# from dst file that we don't want from the src file. These entries are the
# disabled entries and the ones that have idvendor and idproduct only.
# This list of unwanted items is constructed as a grep string. Finally, we
# do a "grep -v" of these items from src file, and add the remaining entries
# to the dst file.
#
if [ -f ${CONF_MAP} ]
then
# There is an existing file on the system. Save it as .old
# if .old exists, move it to .old.xxx
if [ -f ${CONF_MAP_OLD} ]
then
# suffix is day, hr, min, sec
# - it should be unique enough
echo "EXISTING_FILE_SAVED_TO_OLD: ${CONF_MAP_OLD} "\
"${CONF_MAP_OLD}.$suffix" >> ${CLEANUP_FILE}
fi
# build a string of items that we don't want from the new file.
grepstr="^\*|^\#"
# preprocess the old file
sed -e \
'
# delete comments
/^#.*/d
/^\*.*/d
# change mulitple tabs to a single space
s/[ ][ ]*/ /g
# change multiple spaces to a single space
s/[ ][ ]*/ /g
# get rid of leading spaces
s/^ //g
# get rid of trailing spaces
s/[ ][ ]*$//g
# strip spaces around =
s/[ ]*=[ ]*/=/g
# put everything to lower case
# get rid of newlines
tr -s "\n" " " |
# make each record into a single line
tr ";" "\n" |
# fish out entries that are enabled or disabled but have no
egrep -v 'pathname|srno|^[ ]*$' |
while read line
do
vendorstr=""
productstr=""
do
# var=${arg%=*}
# value=${arg#*=}
# val=${value#0x}
'[0][xX]\(.*\)' \
\| $value`
then
# hex -> dec
fi
;;
# val=${value#0x}
'[0][xX]\(.*\)' \
\| $value`
then
# hex -> dec
fi
productstr="idproduct=$val"
;;
esac
done
# build the grep str
if [ -n "$vendorstr" ] || [ -n "$productstr" ]
then
fi
done
# grepstr now contains all the entries that we don't want
# from new CONF_MAP
else
# we are newly installing this file
fi
done
exit 0