| # |
| # Copyright (c) 2003, 2004, Oracle and/or its affiliates. All rights reserved. |
| # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
| # |
| # This code is free software; you can redistribute it and/or modify it |
| # under the terms of the GNU General Public License version 2 only, as |
| # published by the Free Software Foundation. |
| # |
| # This code is distributed in the hope that it will be useful, but WITHOUT |
| # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
| # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
| # version 2 for more details (a copy is included in the LICENSE file that |
| # accompanied this code). |
| # |
| # You should have received a copy of the GNU General Public License version |
| # 2 along with this work; if not, write to the Free Software Foundation, |
| # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
| # |
| # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
| # or visit www.oracle.com if you need additional information or have any |
| # questions. |
| # |
| |
| # |
| # Utility Shell Script for generating .properties files or .password files |
| # or .access files from a list of input .in files. |
| # |
| # Source in this GeneratePropertyPassword.sh and call the function |
| # generatePropertyPasswordFiles. |
| # Call restoreFilePermissions to restore file permissions after the test completes |
| # |
| |
| |
| OS=`uname -s` |
| UMASK=`umask` |
| |
| case $OS in |
| SunOS | Linux) |
| PATHSEP=":" |
| FILESEP="/" |
| DFILESEP=$FILESEP |
| TMP_FILE=${TESTCLASSES}${FILESEP}${TESTCLASS}.sed.tmpfile |
| |
| cat <<EOF > ${TMP_FILE} |
| s^@TEST-SRC@/^${TESTCLASSES}${DFILESEP}^g |
| EOF |
| ;; |
| Windows_95 | Windows_98 | Windows_NT | Windows_ME | CYGWIN*) |
| PATHSEP=";" |
| FILESEP="\\" |
| DFILESEP=$FILESEP$FILESEP |
| TMP_FILE=${TESTCLASSES}${FILESEP}${TESTCLASS}.sed.tmpfile |
| |
| cat <<EOF > ${TMP_FILE}0 |
| s^@TEST-SRC@/^${TESTCLASSES}${DFILESEP}^g |
| EOF |
| # Need to put double backslash in the .properties files |
| cat ${TMP_FILE}0 | sed -e 's^\\\\^ZZZZ^g' | \ |
| sed -e 's^\\^ZZZZ^g' | \ |
| sed -e 's^ZZZZ^\\\\\\\\^g' > ${TMP_FILE} |
| |
| if [ "$OS" = "Windows_NT" ]; then |
| USER=`id -u -n` |
| CACLS="$SystemRoot/system32/cacls.exe" |
| REVOKEALL="${TESTSRC}/../../windows/revokeall.exe" |
| if [ ! -f "$REVOKEALL" ] ; then |
| echo "$REVOKEALL missing" |
| exit 1 |
| fi |
| fi |
| |
| |
| ;; |
| *) |
| echo "Unrecognized system!" |
| exit 1 |
| ;; |
| esac |
| |
| generatePropertyPasswordFiles() |
| { |
| for f in $@ |
| do |
| echo processing $f |
| suffix=`basename $f .in` |
| f2="${TESTCLASSES}${FILESEP}${suffix}" |
| |
| if [ -f "$f2" ] ; then |
| rm -f $f2 || echo WARNING: $f2 already exits - unable to remove old copy |
| fi |
| |
| echo creating $f2 |
| sed -f $TMP_FILE $f > $f2 |
| |
| if [ "$OS" = "Windows_NT" ]; then |
| chown $USER $f2 |
| # Grant this user full access |
| echo Y|$CACLS $f2 \/E \/G $USER:F |
| # Revoke everyone else |
| $REVOKEALL $f2 |
| # Display ACLs |
| $CACLS $f2 |
| else |
| chmod 600 $f2 |
| fi |
| done |
| } |
| |
| restoreFilePermissions() |
| { |
| for f in $@ |
| do |
| suffix=`basename $f .in` |
| f2="${TESTCLASSES}${FILESEP}${suffix}" |
| |
| if [ "$OS" = "Windows_NT" ]; then |
| # Grant everyone full control |
| $CACLS $f2 \/E \/G Everyone:F |
| else |
| chmod 777 $f2 |
| fi |
| |
| done |
| } |
| |