Initial add of defaria.com
[clearscm.git] / defaria.com / Computers / code / bin / lockbug
1 #!/bin/bash
2 ################################################################################
3 #
4 # File:         lockbug
5 # Description:  Lock a bug ID (Must be run by $ccadmin)
6 # Author:       Andrew@DeFaria.com
7 # Created:      Mon Jun  2 11:19:46 PDT 2003
8 # Language:     bash
9 #
10 # (c) Copyright 2001-2003, Andrew@DeFaria.com, all rights reserved.
11 #
12 ################################################################################
13 # Set me to command name
14 me=$(basename $0)
15
16 # Source /etc/site_parms
17 if [ -f /etc/site_parms ]; then
18   . /etc/site_parms
19 else
20   echo "$me: WARNING: /etc/site_parms does not exist!"
21 fi
22
23 # Set adm_base
24 adm_base="$SITE_TOOLS_PATH/adm"
25
26 # Set adm_fpath
27 adm_fpath=${adm_fpath:-$adm_base/functions}
28
29 # Source functions
30 . $adm_fpath/common
31
32 # Admin users
33 ccadmin="ccadmin"
34
35 if [[ $USER != $ccadmin ]]; then
36   error "This command must be executed by $ccadmin" 1
37 fi
38
39 # Must be in a view/vob context
40 cd $SITE_SNAPSHOT_VIEW_PATH/$SITE_OFFICIAL_VIEW/salira
41
42 for bug in $@; do
43   # Check for bug IDs supplied as numbers only. Prepend "BUGS2" and 
44   # number of required zeros to make bug ID. IOW you can specify "7"
45   # or BUGS200000007 but not "07" nor "BUGS07", etc
46   if [ ${#bug} -lt 13 ]; then
47     declare -i len=13-${#bug}
48     if [ $len -lt 5 ]; then
49       # Can't even prepent "BUGS2"!
50       echo "Invalid bug id \"$bug\" encounterd - skipping..."
51       continue
52     else
53       bugid="BUGS2"
54       declare -i zeros=len-5
55       while [ $zeros -gt 0 ]; do
56         bugid="${bugid}0"
57         let zeros=zeros-1
58       done
59       bugid=$bugid$bug
60     fi
61   else
62     bugid=$bug
63   fi
64   
65   cleartool protect -chown $ccadmin lbtype:$bugid
66   cleartool lock -nusers $ccadmin lbtype:$bugid
67 done