mktrtype
Creates a trigger type object
APPLICABILITY
ClearCase (cleartool subcommand), Attache (command)
SYNOPSIS
- Create element trigger type:
- mktrtype -ele·ment [ -a·ll ] [ -rep·lace ]
- { -pre·op | -pos·top } opkind[,...] [ -nus·ers login-name[,...] ]
{ -exe·c command
|-execu·nix command
| -execw·in command
| -mkl·abel label-type-selector
| -mka·ttr attribute-type-selector=value
| -mkh·link hlink-type-selector,to=pname
| -mkh·link hlink-type-selector,from=pname } ...
[ restriction-list ]
[ -pri·nt ]
[ -c·omment comment | -cfi·le comment-file-pname |-cq·uery | -cqe·ach | -nc·omment ]
type-selector ...
- Create type trigger type:
- mktrtype -typ·e [ -rep·lace ] { -pre·op | -pos·top } opkind[,...]
- [ -nus·ers login-name[,...] ]
{ -exe·c command
| -execu·nix command
| -execw·in command
| -mkl·abel label-type-selector
| -mka·ttr attribute-type-selector=value
| -mkh·link hlink-type-selector,to=pname
| -mkh·link hlink-type-selector,from=pname } ...
inclusion-list [ -pri·nt ]
[ -c·omment comment | -cfi·le comment-file-pname |-cq·uery | -cqe·ach | -nc·omment ]
type-selector ...
- A restriction-list contains one or more of:
-att·ype attr-type-selector[,...]
| -hlt·ype hlink-type-selector[,...]
|
-brt·ype branch-type-selector[,...]
| -lbt·ype label-type-selector[,...]
|
-elt·ype elem-type-selector[,...]
| -trt·ype trigger-type-selector[,...]
|
NOTE: -xxtype aaa,bbb is equivalent to -xxtype aaa -xxtype bbb.
- An inclusion-list contains one or more of:
-att·ype attr-type-selector[,...]
| or
| -att·ype -all
|
-brt·ype branch-type-selector[,...]
| or
| -brt·ype -all
|
-elt·ype elem-type-selector[,...]
| or
| -elt·ype -all
|
-hlt·ype hlink-type-selector[,...]
| or
| -hlt·ype -all
|
-lbt·ype label-type-selector[,...]
| or
| -lbt·ype -all
|
-trt·ype trigger-type-selector[,...]
| or
| -trt·ype -all
|
NOTE: -xxtype aaa,bbb is equivalent to -xxtype aaa -xxtype bbb.
DESCRIPTION
The mktrtype command creates one or more trigger types for use within a VOB. A trigger type defines a sequence of one or more trigger actions to be performed when a specified ClearCase or Attache operation occurs. The set of operations that initiates each trigger action-causes the trigger to fire-can be very limited (for example, checkout only) or quite general (for example, any operation that modifies an element). You can use a restriction list to further limit the circumstances under which a trigger action is performed.
Only a VOB's owner or a member of the ClearCase group can create a trigger type.
There are three kinds of trigger types:
- An element trigger type works like a label type or attribute type: an instance of the type (that is, a trigger) must be explicitly attached to one or more individual elements with the mktrigger command. The trigger actions are performed when the specified operation is invoked on any of those elements. An element must exist before the trigger can be attached. (This means that putting a trigger on a mkelem operation has no effect.)
- A variant of the above, called an all-element trigger type, is associated with the entire VOB. (Hence, no mktrigger command is required.) In effect, an instance of the type is implicitly attached to each element in the VOB, even those created after this command is executed. This trigger type is useful for disallowing creation of elements that have certain characteristics.
- A type trigger type is associated with one or more type objects. The trigger actions are performed when any of those type objects is created or modified.
Unlike other types, trigger types cannot be global.
Trigger Firing
Causing a set of trigger actions to be performed is termed firing a trigger. Each trigger action can be either of the following:
- Any command (or sequence of commands) that can be invoked from a command prompt. A command can use special environment variables (EVs), described in the Trigger Environment Variables section, to retrieve information about the operation.
- Any of several built-in actions defined by mktrtype. The built-in actions attach metadata annotations to the object involved in the operation.
Trigger actions execute with the user-ID of the process that caused the trigger to fire.
Interactive Trigger Action Scripts. A batch file, Perl script, or other program executed as (part of) a trigger action can interact with the user. The clearprompt utility is designed for use in such programs; it can handle several kinds of CLI-style and GUI-style user interactions.
Multiple Trigger Firings. A single operation can cause any number of triggers to fire. The firing order of such simultaneous triggers is indeterminate. If multiple trigger operations must be executed in a particular order, use a single trigger defining all of the operations their order of execution.
It is also possible for triggers to create a chain reaction. For example, a checkin operation fires a trigger that attaches an attribute to the checked-in version; the attach attribute operation, in turn, fires a trigger that writes a comment to a file. You can use the CLEARCASE_PPID environment variable to help synchronize multiple firings (for more information, see Trigger Environment Variables).
If a trigger is defined to fire on a hyperlink operation, and the hyperlink connects two elements, the trigger fires twice-once for each end of the hyperlink.
Suppressing Trigger Firing. The firing of a trigger can be suppressed when the associated operation is performed by certain users. Firing of an all-element trigger is suppressed if the trigger type has been made obsolete. (See the lock reference page).
Trigger Interoperation
The -execunix and -execwin options allow a single trigger type to have different paths for the same script, or completely different scripts, on UNIX and Windows hosts. When the trigger is fired on UNIX, the command specified with -execunix runs; when the trigger is fired on Windows, the command specified with -execwin runs.
Triggers with only -execunix commands always fail on Windows. Likewise, triggers that only have -execwin commands fail when they fire on UNIX.
The -exec option, whose command will run on both platforms, can be used in combination with the platform-specific options. For example, you can cascade options:
-exec arg1 -execunix arg2 -execwin arg3 -mklabel arg4 ...
PREOPERATION AND POSTOPERATION TRIGGERS
A preoperation trigger (-preop option) fires before the corresponding operation begins. The one or more actions you've specified take place in their order on the command line.
This type of trigger is useful for enforcing policies:
- If any trigger action returns a nonzero exit status, the operation is canceled.
- If all trigger actions return a zero exit status, the operation proceeds.
For example, a preoperation trigger can prohibit checkin of an element that fails to pass a code-quality test.
A postoperation trigger (-postop option) fires after completion of the corresponding operation. The one or more actions you've specified take place in their order on the command line. This kind of trigger is useful for recording-in the VOB or outside it-the occurrence of the operation. If a postoperation trigger action returns a nonzero exit status, ClearCase or Attache displays a failed exit status warning message, but continues to perform other trigger actions, if any.
For example, a post-operation trigger on checkin attaches an attribute to the checked-in version and sends a mail message to interested users and/or managers.
RESTRICTION LISTS AND INCLUSION LISTS
You can define an element trigger type or all-element trigger type with a restriction list, which limits the scope of the operation specified with -preop or -postop. The trigger fires only if the operation involves particular type objects.
A type trigger type is not associated with element objects, but with one or more type objects. When creating a type trigger type, you must specify an inclusion list, naming the type objects to be associated with the new trigger type. (Hence, it is unnecessary to use mktrigger to create the association.) The special keyword -all allows you to associate a type trigger type with every type object of a particular kind (for example, all branch type objects), even those objects created after you enter this command.
TRIGGER ENVIRONMENT VARIABLES
When a trigger fires, the trigger action executes in a special environment whose EVs make information available to -exec, -execunix, and -execwin routines: what operation caused the trigger to fire, what object was involved in the operation, and so on. The complete set of EVs is listed in TRIGGER OPERATIONS AND TRIGGER ENVIRONMENT VARIABLES.
PERMISSIONS AND LOCKS
Permissions Checking: For each object processed, you must be one of the following: type owner (applies to -replace only), VOB owner, member of the ClearCase group. See the permissions reference page.
Locks: An error occurs if any of the following objects are locked: VOB, trigger type (applies to -replace only).
OPTIONS AND ARGUMENTS
SPECIFYING THE KIND OF TRIGGER TYPE. Default: None.
- -ele·ment
- Creates an element trigger type, which can be attached to individual elements with mktrigger.
- -ele·ment -a·ll
- Creates an all-element trigger type, which is effectively attached to the entire VOB.
- -typ·e
- Creates a type trigger type, and associates it with specific type objects and/or kinds of type objects.
HANDLING OF NAME COLLISIONS. Default: An error occurs if a trigger type named type-name already exists in the VOB.
- -rep·lace
- Replaces the existing definition of type-name with a new one. If you do not include options from the existing definition, their values are replaced with the defaults.
- If you specify a comment when using -replace, the comment appears in the event record for the modification (displayed with lshistory -minor); it does not replace the object's creation comment (displayed with describe). To change an object's creation comment, use chevent.
- Constraint: If an instance of an element trigger type is currently attached to any element, the replacement definition must also be of an element trigger type (but not an all-element trigger type). You can remove an existing trigger type and all of its attached instances using the rmtype command.
SPECIFYING THE OPERATIONS TO BE MONITORED. Default: None.
- -pre·op opkind[,...]
- Specifies one or more operations that cause the trigger to fire before the operation starts. The exit status of the trigger actions is significant: for each trigger action, a zero exit status allows the operation to proceed; a nonzero exit status cancels the operation.
- -pos·top opkind[,...]
- Specifies one or more operations that cause the trigger to fire after the operation completes. The exit status of the trigger action is not significant.
For both -preop and -postop, you must specify a comma-separated list of operations, any of which fire the trigger. Many of the operation keywords have the same names as cleartool subcommands (for example, checkout and unlock). Uppercase keywords (for example, MODIFY_ELEM) identify groups of operations. See the TRIGGER OPERATIONS AND TRIGGER ENVIRONMENT VARIABLES section for a list of operation keywords.
SUPPRESSING TRIGGER FIRING FOR CERTAIN USERS. Default: Triggers fire regardless of who performs the operation.
- -nus·ers login-name[,...]
- Suppresses trigger firing when any user on the comma-separated login-name list performs the operation.
SPECIFYING THE TRIGGER ACTION. Default: None. Specify one or more of the following options to indicate the action to be performed when the trigger fires; you can use more than one option of the same kind. With multiple options, the trigger actions are performed in the specified sequence.
- -exe·c command
- Executes the specified command in a shell when the trigger fires. If command includes one or more arguments, quote the entire string. Use single quotes ('command ') if the command includes ClearCase or Attache environment variables, to delay interpretation until trigger firing time. If you do not run mktrtype from the
cleartool prompt, enclose command-and any single quotes-in double quotes (" ' command ' "). See also the section COMMAND-LINE PROCESSING in the cleartool reference page.
- If you invoke a command built in to the Windows shell (for example, cd, del, dir, or copy), you must invoke the shell with cmd /c. For example:
- -exec 'cmd /c copy %CLEARCASE_PN% %HOME%'
- -execu·nix command
- -execw·in command
- These options have the same behavior as -exec when fired on the appropriate platform (UNIX or Windows, respectively). When fired on the other platform, they do nothing; however, triggers with only -execunix commands always fail on Windows, and triggers that only have -execwin commands always fail on UNIX.
- -mkl·abel label-type-selector
- (With -postop only) Attaches the specified version label to the version involved in the operation that caused trigger firing. If the label type is a global type, a local copy of the type must exist in the VOB in which you are creating the trigger type. Specify label-type-selector in the form [lbtype:]type-name[@vob-selector]
type-name
| Name of the label type
See the Object Names section in the cleartool reference page for rules about composing names.
|
vob-selector
| VOB specifier
Specify vob-selector in the form [vob:]pname-in-vob
|
|
| pname-in-vob
| Pathname of the VOB-tag (whether or not the VOB is mounted) or of any file-system object within the VOB (if the VOB is mounted)
|
- -mka·ttr attribute-type-selector=value
- (With -postop only) Attaches the specified attribute name/value pair to the object involved in the operation that caused trigger firing. If the attribute type is a global type, a local copy of the type must exist in the VOB in which you are creating the trigger type. Specify attribute-type-selector in the form [attype:]type-name[@vob-selector]
type-name
| Name of the attribute type
See the Object Names section in the cleartool reference page for rules about composing names.
|
vob-selector
| VOB specifier
Specify vob-selector in the form [vob:]pname-in-vob
|
|
| pname-in-vob
| Pathname of the VOB-tag (whether or not the VOB is mounted) or of any file-system object within the VOB (if the VOB is mounted)
|
- -mkh·link hlink-type-selector,to=pname
- (With -postop only) Creates a hyperlink from the object involved in the operation that caused the trigger to fire to the object specified by pname. If the hyperlink type is a global type, a local copy of the type must exist in the VOB in which you are creating the trigger type. Specify hlink-type-selector in the form [hltype:]type-name[@vob-selector]
type-name
| Name of the hyperlink type
See the Object Names section in the cleartool reference page for rules about composing names.
|
vob-selector
| VOB specifier
Specify vob-selector in the form [vob:]pname-in-vob
|
|
| pname-in-vob
| Pathname of the VOB-tag (whether or not the VOB is mounted) or of any file-system object within the VOB (if the VOB is mounted)
|
- -mkh·link hlink-type-selector,from=pname
- (With -postop only) Creates a hyperlink from the object specified by pname to the object involved in the operation that caused the trigger to fire. If the hyperlink type is a global type, a local copy of the type must exist in the VOB in which you are creating the trigger type. Specify hlink-type-selector in the form [hltype:]type-name[@vob-selector]
type-name
| Name of the hyperlink type
See the Object Names section in the cleartool reference page for rules about composing names.
|
vob-selector
| VOB specifier
Specify vob-selector in the form [vob:]pname-in-vob
|
|
| pname-in-vob
| Pathname of the VOB-tag (whether or not the VOB is mounted) or of any file-system object within the VOB (if the VOB is mounted)
|
- NOTES: With the built-in actions -mklabel, -mkattr, and -mkhlink, you can specify the information either literally or using environment variables:
-mklabel RLS_2.3
| (literal)
|
-mklabel RLS_%RLSNUM%
| (depends on value of EV at trigger firing time)
|
-mklabel %THIS_RLS%
| (depends on value of EV at trigger firing time)
|
-mkattr ECO=437
| (literal)
|
-mkattr ECO=%ECONUM%
| (depends on value of EV at trigger firing time)
|
- The built-in actions never cause additional triggers to fire. However, programs invoked with -exec may cause such chain reactions. For example, a mklabel command in a program can cause another trigger to fire, but the corresponding -mklabel trigger action cannot.
ELEMENT TRIGGER TYPES: SPECIFYING A RESTRICTION LIST. Default: No restrictions; triggers fire when any of the specified operations occurs, no matter what type objects are involved.
- -att·ype attr-type-selector[,...]
- -brt·ype branch-type-selector[,...]
- -elt·ype elem-type-selector[,...]
- -hlt·ype hlink-type-selector[,...]
- -lbt·ype label-type-selector[,...]
- -trt·ype trigger-type-selector[,...]
- Use one or more of the above options (or multiple options of the same kind) to specify a set of type objects for the restriction list. If the type object is an ordinary type, it must already exist. If a type object is a global type and a local copy does not exist in the VOB, a local copy is created automatically.
- Repeated options, such as -elt text_file -elt c_source, are equivalent to a single option: -elt text_file,c_source. Wildcarding ( -eltype `*file' ) is not supported.
- At trigger firing time, the items on the restriction list form a logical condition. If the condition is met, the trigger fires.
- Specify the type-selector arguments in the form [type-kind:]type-name[@vob-selector]
type-kind
| One of attype attribute type brtype branch type eltype element type hltype hyperlink type lbtype label type trtype trigger type
|
type-name
| Name of the type object
|
vob-selector
| VOB specifier
Specify vob-selector in the form [vob:]pname-in-vob
|
|
| pname-in-vob
| Pathname of the VOB-tag (whether or not the VOB is mounted) or of any file-system object within the VOB (if the VOB is mounted)
|
- NOTE: Suppressing the firing of a preoperation trigger means that the operation is allowed to proceed.
- Here is a simple condition:
-brtype rel2_bugfix
| Fire the trigger only if the operation involves a branch of type rel2_bugfix.
|
- If the list includes multiple type objects, they are combined into a compound condition: type objects of the same kind are grouped with logical OR; objects (or groups) of different kinds are then logically ANDed.
-brtype rel2_bugfix -eltype
text_file,c_source
| Fire the trigger only if the operation involves a branch of type rel2_bugfix AND it involves either an element of type text_file OR of an element of type c_source.
|
- In forming the condition, a type object is ignored if it could not possibly be affected by the operation. (The relevant information is included in the TRIGGER OPERATIONS AND TRIGGER ENVIRONMENT VARIABLES section.) For example, the restriction list -lbtype REL2,REL2.01 applies only to the operations chtype, mklabel, and rmlabel.
TYPE TRIGGER TYPES: SPECIFYING AN INCLUSION LIST. Default: None. You must specify at least one item for the inclusion list of a type trigger type.
-att·ype attr-type-selector[,...]
| or
| -att·ype -all
|
-brt·ype branch-type-selector[,...]
| or
| -brt·ype -all
|
-elt·ype elem-type-selector[,...]
| or
| -elt·ype -all
|
-hlt·ype hlink-type-selector[,...]
| or
| -hlt·ype -all
|
-lbt·ype label-type-selector[,...]
| or
| -lbt·ype -all
|
-trt·ype trigger-type-selector[,...]
| or
| -trt·ype -all
|
- You must specify at least one existing type object, or at least one kind of type object, using the special keyword -all. The trigger fires only if the inclusion list contains the type object that is being modified or used by the operation.
TRACING TRIGGER EXECUTION. Default: At trigger firing time, if environment variable CLEARCASE_TRACE_TRIGGERS is set to a nonnull value in the process that causes the trigger to fire, a message that includes the trigger type name is sent to stdout when the trigger fires; a similar message is generated when the trigger action completes.
- -pri·nt
- Causes the messages to be generated at trigger firing time, whether or not CLEARCASE_TRACE_TRIGGERS is set.
EVENT RECORDS AND COMMENTS. Default: Creates one or more event records, with commenting controlled by your .clearcase_profile file (default: -cqe). See CUSTOMIZING COMMENT HANDLING in the comments reference page. Comments can be edited with chevent.
- -c·omment comment | -cfi·le comment-file-pname |-cq·uery | -cqe·ach | -nc·omment
- Overrides the default with the option you specify. See the comments reference page.
NAMING THE TRIGGER TYPE. Default: The trigger type is created in the VOB that contains the current working directory unless you use the @vob-selector suffix to specify another VOB.
- type-selector ...
- One or more names for the trigger types to be created. Specify trigger-type-selector in the form [trtype:]type-name[@vob-selector]
type-name
| Name of the trigger type
See the Object Names section in the cleartool reference page for rules about composing names.
|
vob-selector
| VOB specifier
Specify vob-selector in the form [vob:]pname-in-vob
|
|
| pname-in-vob
| Pathname of the VOB-tag (whether or not the VOB is mounted) or of any file-system object within the VOB (if the VOB is mounted)
|
TRIGGER OPERATIONS AND TRIGGER ENVIRONMENT VARIABLES
Trigger Operations for Type Trigger Types
The following list shows the operation keywords (opkind) for use in definitions of type trigger types (mktrtype -type).
NOTE: These operations are not ClearCase commands, although some have the same names as cleartool subcommands. These are lower-level operations, similar to function calls. See the events_ccase reference page for a list of which commands cause which operations.
MODIFY_TYPE
mktype (see following NOTE)
rmtype
rntype
lock
unlock
chevent
chmaster
NOTE: If you specify mktype, the corresponding inclusion list cannot specify individual type objects; all relevant options must use the -all keyword. For example:
... -postop mktype -eltype -all -brtype -all ...
Trigger Operations for Element and All-Element Trigger Types
Table 6 lists the operation keywords (opkind) for use in definitions of element and all-element trigger types (-element and -element -all). See also the events_ccase reference page.
NOTE: These operations are not ClearCase commands, although some have the same names as cleartool subcommands. These are lower-level operations, similar to function calls. See the events_ccase reference page for a list of which commands cause which operations.
Table 6 Trigger Definition Operation Keywords
Operation Keyword
| Restrictions Checked when Trigger Fires
|
MODIFY_ELEM
|
checkout
|
Element type, branch type
|
reserve
|
Element type, branch type
|
uncheckout
|
Element type, branch type
|
unreserve
|
Element type, branch type
|
MODIFY_DATA
|
checkin
|
Element type, branch type
|
chevent
|
See NOTE at end of table
|
chtype
|
All type objects
|
lnname
|
Element type, branch type
|
lock
|
See NOTE at end of table
|
mkbranch
|
Element type, branch type
|
mkelem
|
Element type
|
mkslink
|
N/A
|
rmbranch
|
Element type, branch type
|
rmelem
|
Element type
|
rmname
|
N/A
|
rmver
|
Element type, branch type
|
unlock
|
See NOTE at end of table
|
MODIFY_MD
|
chevent
|
see NOTE at end of table
|
chmaster
|
See NOTE at end of table
|
mkattr
|
Element type, attribute type, branch type
|
mkhlink
|
Element type, hyperlink type, branch type
|
mklabel
|
Element type, label type, branch type
|
mktrigger
|
Element type, trigger type
|
rmattr
|
Element type, attribute type, branch type
|
rmhlink
|
Element type, hyperlink type, branch type
|
rmlabel
|
Element type, label type
|
rmtrigger
|
Element type, trigger type
|
NOTE: The operation fires a trigger only if the affected object is one of the following:
- A branch object or version object (in this case, only element type and branch type restrictions apply)
- An element object (in this case, only element type restrictions apply)
- A type object (in this case, only restrictions on that kind of type object apply)
Trigger Environment Variables
The following list shows the EVs that are set in the environment in which a trigger action batch file runs. The words in parentheses at the beginning of the description indicate which operations cause the EV to be set to a significant string; for all other operations, the EV is set to the null string. (See the events_ccase reference page for a list of which commands cause which operations.)
- CLEARCASE_ATTACH
- (mktrigger, rmtrigger) Set to 1 if an element trigger type (except an all-element trigger type) is on the affected element's attached list; set to 0 if it is on a directory element's inheritance list. See the mktrigger reference page for a description of these lists.
- CLEARCASE_ATTYPE
- (All operations that can be restricted by attribute type) Attribute type involved in operation that caused the trigger to fire. In a rename operation, the old name of the renamed attribute type object.
- CLEARCASE_BRTYPE
- (All operations that can be restricted by branch type) Branch type involved in the operation that caused the trigger to fire. In a rename operation, the old name of the renamed branch type object.
- CLEARCASE_CI_FPN
- (checkin) Pathname in checkin -from.
- CLEARCASE_CMDLINE
- (All operations initiated through use of the cleartool command) A string specifying the cleartool subcommand and any options and arguments included on the command line.
- NOTES:
- This EV's value is set by the cleartool command, and only by that command. If a trigger is fired by any other means (through the use of a ClearCase GUI, for example) the EV is not set.
|
- The EV's value may be garbled if the command line contains nested quotes.
|
- CLEARCASE_COMMENT
- (All operation kinds that support comments) Comment string for the command that caused the trigger to fire.
- CLEARCASE_ELTYPE
- (All operations that can be restricted by element type) Element type of the element involved in the operation that caused the trigger to fire. In a rename operation, the old name of the renamed element type object.
- CLEARCASE_FREPLICA
- (chmaster) The old mastering replica: the replica that mastered the object at the time the command was entered.
- CLEARCASE_FTEXT
- (mkhlink, rmhlink) Text associated with hyperlink from-object.
- CLEARCASE_FVOB_PN
- (mkhlink, rmhlink) Pathname of VOB containing hyperlink from-object.
- CLEARCASE_FXPN
- (mkhlink, rmhlink) VOB-extended pathname of hyperlink from-object.
- CLEARCASE_HLTYPE
- (All operations that can be restricted by hyperlink type) Hyperlink type involved in operation that caused the trigger to fire. In a rename operation, the old name of the renamed hyperlink type object.
- CLEARCASE_ID_STR
- (checkin, checkout, mkattr, mkbranch, mkhlink, mklabel, rmattr, rmhlink, rmlabel, rmver) Version-ID of version, or branch pathname of branch, involved in the operation.
- CLEARCASE_IS_FROM
- (mkhlink, rmhlink) Set to 1 if CLEARCASE_PN contains name of hyperlink from-object; set to 0 if CLEARCASE_PN contains name of hyperlink to-object.
- CLEARCASE_LBTYPE
- (All operations that can be restricted by label type) Label type involved in the operation that caused the trigger to fire. In a rename operation, the old name of the renamed label type object.
- CLEARCASE_MTYPE
- (All) Kind of object involved in the operation that caused the trigger to fire: element type, branch type, directory version, and so on.
- CLEARCASE_NEW_TYPE
- (rename) New name of the renamed type object.
- CLEARCASE_OP_KIND
- (All) Actual operation that caused the trigger to fire.
- CLEARCASE_OUT_PN
- (checkout) Pathname in checkout -out. (Same as CLEARCASE_PN if -out not used.)
- CLEARCASE_PN
- (All operations; element triggers only) Name of element specified in the command that caused the trigger to fire.
- NOTES:
- With an all-element trigger, a pathname in the top-level directory of a VOB is reported with an extra (but still correct) "\." pathname component:
|
\proj1\.\releasedir
| (if VOB-tag is \proj1)
|
- Some cleartool and Attache commands rename files during their execution. Usually, such manipulations are unnoticeable, but you may need to adjust your trigger batch files accordingly. For example, the batch file for a preoperation mkelem trigger may need to operate on file name "%CLEARCASE_PN%.mkelem" instead of "%CLEARCASE_PN%".
|
- If the file does not exist (for example, the checked-out file was removed), the value of CLEARCASE_PN is different from its value when the file exists.
|
- CLEARCASE_PN2
- (lnname)
- When a side-effect of a mkelem operation, gets the same value as CLEARCASE_PN.
|
- When a side-effect of a mv operation, gets the old pathname of the element.
|
- CLEARCASE_POP_KIND
- (mkelem, mkslink, lnname, rmname) Parent operation kind. The mkelem and mkslink operations both cause an lnname operation. If lnname happens as a result of either of these parent operations, CLEARCASE_POP_KIND is set to mkelem or mkslink, respectively. Note that both the parent operations (mkelem and mkslink) and the child operation (lnname) set CLEARCASE_POP_KIND to the applicable parent operation value-mkelem or mkslink.
| User Commands that Cause Multiple Operations
| Operations
| CLEARCASE_POP_KIND value
|
mkelem
| mkelem lnname
| mkelem mkelem
|
ln -s
| mkslink lnname
| mkslink mkslink
|
move | mv
| lnname rmname
| rmname lnname
|
- The move or mv command is a special case because there is no move operation. Therefore, the CLEARCASE_POP_KIND environment variable is set to the values rmname and lnname to show that those operations were part of the command execution.
- CLEARCASE_PPID
- (All) Parent Process-ID: the process-ID of the ClearCase or Attache client program (for example, cleartool) that invoked the trigger. This is useful for constructing unique names for temporary files that will pass data between a preoperation trigger and a postoperation trigger, or between successive parts of a multipart trigger action.
- CLEARCASE_RESERVED
- (checkin, checkout) Set to 1 if user requested a reserved checkout; set to 0 if user requested an unreserved checkout.
- CLEARCASE_SLNKTXT
- (mkslink; that is, the ln -s command) Text of the new VOB symbolic link.
- CLEARCASE_TREPLICA
- (chmaster) The new mastering replica: the replica specified to receive mastership.
- CLEARCASE_TRTYPE
- (All operations that can be restricted by trigger type) Trigger type involved in the operation that caused the trigger to fire. In a rename operation, the old name of the renamed trigger type object.
- CLEARCASE_TTEXT
- (mkhlink, rmhlink) Text associated with hyperlink to-object.
- CLEARCASE_TVOB_PN
- (mkhlink, rmhlink) Pathname of VOB containing hyperlink to-object.
- CLEARCASE_TXPN
- (mkhlink, rmhlink) VOB-extended pathname of hyperlink to-object.
- CLEARCASE_USER
- (All) The user who issued the command that caused the trigger to fire; derived from the Windows-level user-ID.
- CLEARCASE_VAL
- (mkattr) String representation of attribute value for CLEARCASE_ATTYPE (for example,
"Yes" or 4657).
- CLEARCASE_VIEW_TAG
- (All) View-tag of the view in which the operation that caused the trigger to fire took place.
- CLEARCASE_VOB_PN
- (All) VOB-tag of the VOB whose object was involved in the operation that caused the trigger to fire.
- CLEARCASE_VTYPE
- (mkattr) Value type of the attribute in CLEARCASE_ATTYPE (for example, string or integer).
- CLEARCASE_XN_SFX
- (All) Extended naming symbol (such as @@) for host on which the operation took place.
- CLEARCASE_XPN
- (All operations; element triggers only) Same as CLEARCASE_ID_STR, but prepended with CLEARCASE_PN and CLEARCASE_XN_SFX values, to form a complete VOB-extended pathname of the object involved in the operation.
EXAMPLES
Examples including wildcards or quoting are written for use in cleartool interactive mode. If you use cleartool single-command mode, you may need to change the wildcards and quoting to make your command interpreter process the command appropriately.
In cleartool single-command mode, cmd-context represents the command interpreter prompt. In cleartool interactive mode, cmd-context represents the interactive cleartool prompt. In Attache, cmd-context represents the workspace prompt.
- Create an element type named batfile for use with batch files. Then, create an all-element trigger type, chmod_a_plus_x, that makes newlycreated elements of type batfile executable. Convert a view-private file to an element of this type.
cmd-context mkeltype -supertype text_file -c "batch file" batfile
Created element type "batfile".
cmd-context mktrtype -element -all -postop mkelem -eltype batfile -nc -exec ^
'c:\Program Files\Rational\ClearCase\bin\cleartool protect -chmod a+x ^
%CLEARCASE_PN%' chmod_a_plus_x
Created trigger type "chmod_a_plus_x".
cmd-context mkelem -eltype batfile -ci -nc cleanup.bat
Created element "cleanup.bat" (type "batfile").
Changed protection on "\users_hw\src\cleanup.bat".
Checked in "cleanup.bat" version "\main\1".
- Create an all-element trigger type, to prevent files with certain extensions from being made into elements.
cmd-context mktrtype -element -all -nc -preop mkelem -exec ^
`M:\%CLEARCASE_VIEW_TAG%\%CLEARCASE_VOB_PN%\trigs\check_ext %CLEARCASE_PN%' ^
check_ext
Created trigger type "check_ext".
- Create an element trigger type that runs a script when a mkbranch command is executed. Specify different scripts for UNIX and Windows platforms.
cmd-context mktrtype -element -postop mkbranch -nc ^
-execunix /net/neon/scripts/branch_log.sh ^
-execwin \\photon\triggers\branch_log.bat branch_log
Created trigger type "branch_log".
- Create an all-element trigger type to monitor checkins of elements of type c_source. Firing the trigger runs a test program on the file being checked in, and may cancel the checkin.
cmd-context mktrtype -element -all -nc -preop checkin -exec ^
'M:\%CLEARCASE_VIEW_TAG%\%CLEARCASE_VOB_PN%\trigs\metrics_test %CLEARCASE_PN%' ^
-eltype c_source metrics_trigger
Created trigger type "metrics_trigger".
Use of environment variable CLEARCASE_VOB_PN causes the test program to be retrieved from a location in the current VOB.
- Create a type trigger type to monitor the creation of new label types. The trigger aborts the label-type-creation operation if the specified name does not conform to standards.
cmd-context mktrtype -type -nc -preop mktype -lbtype -all -exec ^
'M:\%CLEARCASE_VIEW_TAG%\%CLEARCASE_VOB_PN%\trigs\check_label_name' ^
check_label_trigger
Created trigger type "check_label_trigger".
cmd-context mktrtype -element -postop checkin ^
-c "set attribute to record which user checked in this version" ^
-mkattr 'TestedBy="%CLEARCASE_USER%"' trig_who_didit
Created trigger type "trig_who_didit".
- Create an all-element trigger type and a type trigger type that prevent all users except stephen, hugh, and emma from running the chmaster command on element-related objects and type objects in the current VOB:
cleartool mktrtype -element -all -preop chmaster -nusers stephen,hugh,emma ^
-execunix "Perl -e \"exit -1;\"" -execwin "ccperl -e \"exit (-1);\"" ^
-c "ACL for chmaster" elem_chmaster_ACL
cleartool mktrtype -type -preop chmaster -nusers stephen,hugh,emma ^
-execunix "Perl -e \"exit -1;\"" -execwin "ccperl -e \"exit (-1);\"" ^
-attype -all -brtype -all -eltype -all -lbtype -all -hltype -all ^
-c "ACL for chmaster" type_chmaster_ACL
SEE ALSO
events_ccase, lstype, mktrigger, rmtype, type_object
Feedback on the documentation in this site? We welcome any comments!
Copyright © 1999 by Rational Software Corporation. All rights reserved.
|