#!/usr/bin/perl # $Id: //depot/cad/tools/1.0/icp4/bin/p4ci#8 $ # # CSWITCH CORPORATION CONFIDENTIAL PROPRIETARY # # This file contains information which is the # proprietary property of Cswitch Corporation. # This file is confidential and its contents may # not be disclosed without the expressed written # consent of Cswitch Corporation. use strict; use warnings; use FindBin qw($Bin); use lib "$Bin/../lib"; use Icp4; use Getopt::Std; use File::Basename; our (%opt, $Program); our $attr_sfx = ".Ic_cell_template.attr"; our $cell_sfx = ".iccel_[0-9]+"; our $temp_file = "/var/tmp/p4verify.$$"; MAIN: { my $nflag; my ($cell, $cells); my ($cell_attr, $ic_pat); my ($openStat, $expectedStat); $Program = $FindBin::Script; getopts('hDnik:', \%opt); if ($opt{h} || $#ARGV < 0) { print "Usage: $Program [-h] [-i] cell+\n"; print " -h: help usage\n"; print " -i: ignore pending changes (dangerous!)\n"; print " -n: show operation only\n"; print " cell: cell name(s)\n"; print "This program checks that your .attr is not different from the head of the tree.\n"; exit; } $nflag = "-n" if ($opt{n}); $cells = ""; foreach $cell (@ARGV) { if (-d $cell) { $cell_attr = $cell . $attr_sfx; $ic_pat = $cell . $cell_sfx; if (-f "$cell/$cell_attr") { $openStat = &Icp4::openStat("$cell/$cell_attr"); $expectedStat = &Icp4::p4_stat_constant("NOT_OPENED"); if ($opt{D}) { print "## open stat=$openStat expected $expectedStat\n"; } if ($openStat != &Icp4::p4_stat_constant("NOT_OPENED")) { print "### File $cell/$cell_attr may be opened by someone\n"; print "### \&Icp4::openStat returned code: $openStat. Skipping.\n"; next; } if ($opt{n}) { print "p4 print -q -o $temp_file $cell/$cell_attr; diff -q $cell/$cell_attr $temp_file\n"; } else { system("p4 print -q -o $temp_file $cell/$cell_attr; diff -q $cell/$cell_attr $temp_file"); } } else { print "### $cell directory does not have file $cell_attr\n"; next; } } } unlink $temp_file; exit 0; }