#!/usr/bin/ksh
#
# SAMPLE NAME: extractFilesForCommittedLevel
#
# FUNCTIONS:   This sample shell script extracts the committed files
#              associated with a specific committed level in a release,
#              and places them in the path specified by 
#              the relativePathName parameter.
#              This is equivalent of doing a delta extract on the committed
#              level.
#
# USAGE:  extractFilesForCommittedLevel releaseName levelName relativePathName
#
# ENVIRONMENT VARIABLE(S): CMVC_FAMILY [CMVC_BECOME]
#
# 5765-207 (C) COPYRIGHT International Business Machines Corp. 1993,1998
# 5765-202 (C) COPYRIGHT International Business Machines Corp. 1993,1998
# 5622-063 (C) COPYRIGHT International Business Machines Corp. 1993,1998
# All Rights Reserved
# Licensed Materials - Property of IBM
#
# US Government Users Restricted Rights - Use, duplication or
# disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
#
#           NOTICE TO USERS OF THE SOURCE CODE EXAMPLES
#
# INTERNATIONAL BUSINESS MACHINES CORPORATION PROVIDES THE SOURCE CODE
# EXAMPLES, BOTH INDIVIDUALLY AND AS ONE OR MORE GROUPS, "AS IS" WITHOUT
# WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT
# LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
# PARTICULAR PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE
# OF THE SOURCE CODE EXAMPLES, BOTH INDIVIDUALLY AND AS ONE OR MORE GROUPS,
# IS WITH YOU.  SHOULD ANY PART OF THE SOURCE CODE EXAMPLES PROVE
# DEFECTIVE, YOU (AND NOT IBM OR AN AUTHORIZED RISC System/6000* WORKSTATION
# DEALER) ASSUME THE ENTIRE COST OF ALL NECESSARY SERVICING, REPAIR OR
# CORRECTION.
#
# * RISC System/6000 is a trademark of International Business Machines
#   Corporation.
#
# /usr/lpp/cmvc/samples/extractFilesForCommittedLevel
#


# Validation of input parameters and environment variables.

if [ $# -eq 0 ]
then
  print "usage: $0 releaseName levelName relativePathName\n"
  print "This sample shell script extracts the committed files"
  print "associated with a specific committed level in a release"
  print "and places them in the path specified by "
  print "the relativePathName parameter."
  print "This is equivalent of doing a delta extract on the committed level."
  exit 1
fi

if [ -z "$CMVC_FAMILY" ]
then
  print "The CMVC family must be set with the CMVC_FAMILY environment variable."
  exit 1
fi

#
if [ $# -ne 3 ]
then
  print "Provide a releaseName, a levelName, and a relativePathName"
  print "as input parameters.\n"
  exit 1
fi

releaseName=$1
levelName=$2
relative=$3

PATHNAME=
SAVEPATHNAME=

# Find out the files in the committed level/release and extract them

Report -view ChangeView -where "levelID in (select id from levelView where name='$levelName' and releaseName='$releaseName') order by pathName" -raw > /tmp/cv$$
while read line
do
   PATHNAME=`echo $line | cut -d'|' -f5 `
   VERSION=`echo $line | cut -d'|' -f4 `
   print "Extracting file: $PATHNAME committedVersion: $VERSION"
   File -extract $PATHNAME -relative $relative -release $releaseName -version $VERSION
done </tmp/cv$$

# Cleanup the temporary file
[ -r /tmp/cv$$ ] && rm -f /tmp/cv$$

print "The delta extraction of the committed level is done!"

exit 0

### end of file ###
