File = updconfig group: product = ANY flavor= IRIX+6 flavor = IRIX+5 qualifiers = ANY options = ANY common: UPS_THIS_DB = "/usr/products/irix6/upsdb" UNWIND_PROD_DIR = "/usr/products/irix6/${UPS_PROD_NAME}/${UPS_PROD_VERSION}/${UPS_PROD_FLAVOR}" UPS_PROD_DIR = "${UNWIND_PROD_DIR}" UNWIND_UPS_DIR = "${UNWIND_PROD_DIR}/ups" UPS_UPS_DIR = "ups" UNWIND_TABLE_DIR = "${UPS_THIS_DB}/${UPS_PROD_NAME}" UPS_TABLE_DIR = "${UNWIND_TABLE_DIR}" UPS_TABLE_FILE = "${UPS_PROD_VERSION}.table" end: group: product = ANY flavor = ANY qualifiers = ANY options = ANY common: UPS_THIS_DB = "/afs/.fnal.gov/products/upsdb" UNWIND_PROD_DIR = "/afs/.fnal.gov/products/${UPS_PROD_NAME}/${UPS_PROD_VERSION}/${UPS_PROD_FLAVOR}" UPS_PROD_DIR = "/afs/fnal/products/${UPS_PROD_NAME}/${UPS_PROD_VERSION}/${UPS_PROD_FLAVOR}" UNWIND_UPS_DIR = "${UNWIND_PROD_DIR}/ups" UPS_UPS_DIR = "ups" UNWIND_TABLE_DIR = "${UPS_THIS_DB}/${UPS_PROD_NAME}" UPS_TABLE_DIR = "${UNWIND_TABLE_DIR}" UPS_TABLE_FILE = "${UPS_PROD_VERSION}.table" Action = predeclare Execute( "/usr/local/bin/upd_volrelease ${UNWIND_PROD_DIR}",NO_UPS_ENV) Execute( "/usr/local/bin/upd_volrelease ${UNWIND_UPS_DIR}",NO_UPS_ENV) Execute( "/usr/local/bin/upd_volrelease ${UNWIND_TABLE_DIR}",NO_UPS_ENV) Action = postdeclare Execute( "/usr/local/bin/upd_volrelease ${UPS_THIS_DB}",NO_UPS_ENV) end:
This example has two groups in it; the first case handles specificly products flavored IRIX+5 or IRIX+6 , the second case handles everything else. You can make the cases specific based on product name or names, version name or names, qualifier name or names, and options set with -O on the upd command line.
Several variables have an UNWIND_ prefix variant; This specifies the real path to actually put the files in, rather than the string to use when declaring the product. So for example, you could use:
UNWIND_PROD_DIR = /cdf/products/${UPS_PROD_NAME}/${UPS_PROD_VERSION} prod_dir = \$BFDIST/${UPS_PROD_NAME}/${UPS_PROD_VERSION}
The actions are:
For more complicated configurations than this can handle, actual perl callout editing is still avaliable.
With in a group:...end:, listing multiple products and/or flavors means the or of the list: e.g.
group: product=fred product=joe flavor=IRIX+5 flavor=IRIX+6 qualifiers="" qualifiers="mips1" ... end:means product fred or joe, flavor IRIX+5 or IRIX+6, qualifiers none or mips1. If left out, product, flavor, and qualifiers default to ANY, which matches everything.