Unix Humour
I came across (via an old school friend on facebook) something which I just had to share. I know whom will be laughing at this.
I came across (via an old school friend on facebook) something which I just had to share. I know whom will be laughing at this.
I was looking for a simple way to have someone emailed when an event occurred in Rational Clearcase, like a new branch type being created. If you run Clearcase on UNIX (i.e. Solaris or similar) you can whip up a simple shell script and create your trigger. I will assume you have sendmail or similar already configured on your host so that mail utilities can send smtp mail
Lets have a go at it.
Write a shell script that uses mailx to send a message with some Clearcase trigger variables embedded in it, something like this:
# Comma delimited email list of mail recipients
adminmail="youraddress@your.domain.com"
#This gets the host name
host=`uname -a |awk '{print $2}'`
#Begin send of message
echo "\
Creation of brtype \"$CLEARCASE_BRTYPE\"
by: $CLEARCASE_USER
comment: $CLEARCASE_COMMENT" \
| /usr/bin/mailx -s "[$host:CLEARCASE] New branchtype $CLEARCASE_BRTYPE created"
You can download this mail_new_brtype.sh if you are in a rush.
In this script you will see a number of variables starting with $CLEARCASE. These variables will be populated as environment variables when a trigger event occurs and launches the shell script.
The script should be saved somewhere it can be run on the UNIX server hosting the VOB, so when Clearcase triggers it can run the script. An appropriate location would be in the home directory of the VOB owner, for example:
/home/ccadmin/ccscripts/mail_new_brtype.sh
One you have saved the script, you need to actually make the trigger in Clearcase. Consider the following on creating this trigger type
You can research these options by viewing the man page of the command used to make a new trigger type:
cleartool man mktrtype
Once you have had a read of the man page, you should see some examples and options that can be used. Have a go at running the command yourself. This is what I came up with and should cover all our considerations:
cleartool mktrtype -c "Trigger to email cfgmgr on new brtype creation" -type -postop mktype -brtype -all -exec /home/ccadmin/ccscripts/mail_new_brtype.sh new_branch_trigger
My example shown here is relevant to Clearcase V6, so YMMV.
Once that has been run, you can see your new trigger listed in the trigger type list:
cleartool lstype -kind trtype
18-Dec.10:27 ccadmin trigger type "new_branch_trigger"
"Trigger to email cfgmgr on new brtype creation"
Next time a user creates a branch type, you will receive an email with the branch type name, branch type comment and whom created it!
Look for more upcoming tips; including how to make a trigger use a perl script to validate label names.
The official OpenBSD announcement states:
We are pleased to announce the official release of OpenBSD 4.2. We remain proud of OpenBSD’s record of more than ten years with only two remote holes in the default install. We dedicate this release to the memory of long-time developer Jun-ichiro “itojun” Itoh Hagino, who focused his life on IPv6 deployment for everyone.
So get to it people, buy a CD and support the project. While you are waiting for your CD to arrive, you can get the release off the mirrors.
I use this OS exclusively for all my servers, firewalls, www, db, dns and it is the quickest to set-up, easiest to administrate (great doco) and the most secure by default of any of the UNIX like operating systems out there.
I found myself writing down example commands in clearcase (V6), so I thought I would share them. If you have ever needed to find files like you do in UNIX, but want to be clearcase specific, then these commands will give you a quick headstart on using the cleartool find command:
How do I list all files and file versions going into a specific build that is labelled?
Assume your label is TR1_PRE_RELEASE
cleartool find . -version 'lbtype (TR1_PRE_RELEASE)' -print
How do I find the latest versions on branch xyz?
In this example, branch xyz is the tst branch
cleartool find . -version 'version (.../tst/LATEST)' -print
How do I find the latest versions on xyz branch WITHOUT a specific label?
For this example the xyz branch is the main (default clearcase) branch, and the label is TR1_PRE_RELEASE
cleartool find . -version 'version (/main/LATEST) && ! lbtype(TR1_PRE_RELEASE)' -print
How do I see what in the filesystem has changed from clearcase?
This example only works if you have set your view on the same machine where the file system to compare is.
cd /
clearfsimport -preview -recurse /
I hope that gives you incentive to go and read the clearcase find documentation and learn more for yourself by trying.