Subversion Repositories DevTools

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
392 dpurdie 1
#! perl
2
########################################################################
3
# Copyright ( C ) 2004 ERG Limited, All rights reserved
4
#
5
# Module name   : jats.sh
6
# Module type   : Makefile system
7
# Compiler(s)   : n/a
8
# Environment(s): jats
9
#
10
# Description   : Get package dependancies and sub-dependancies
11
#                 for a package name and version as specified on the
12
#                 command line.
13
#
14
#                 No formatting of the output
15
#
16
# Usage:
17
#
18
# Version   Who      Date        Description
19
#
20
#......................................................................#
21
 
22
require 5.006_001;
23
use strict;
24
use warnings;
25
#use Data::Dumper;
26
use Cwd;
27
use DeployUtils::RmPkgInfo;
28
my  %Package;
29
 
30
 
31
my $ONLY_DISPLAY_ONCE = 1;
32
my $DISPLAY_SUB_DEPEND = 1;
33
 
34
#
35
#   Determine root package
36
#
37
unless ( $ARGV[0] && $ARGV[1] )
38
{
39
    print "Specify a package as 'name' 'version'\n";
40
    exit;
41
}
42
 
43
#
44
#   Test the RM Interface
45
#
46
GetDepends (0, $ARGV[0], $ARGV[1] );
47
 
48
#-------------------------------------------------------------------------------
49
# Function        : GetDepends
50
#
51
# Description     :
52
#
53
# Inputs          : pkg_name
54
#                   pkg_ver
55
#
56
# Returns         :
57
#
58
sub GetDepends
59
{
60
    my ($level, $pkg_name, $pkg_ver ) = @_;
61
 
62
#    return
63
#        if ( defined($Package{$pkg_name}) );
64
 
65
    displayName( $level, $pkg_name, $pkg_ver );
66
    return if ( !$DISPLAY_SUB_DEPEND && $level > 0 );
67
 
68
    my $pkgInfo = $Package{$pkg_name}{$pkg_ver};
69
    unless ( defined $pkgInfo )
70
    {
71
        $pkgInfo = DeployUtils::RmPkgInfo->new( { PKG_NAME => $pkg_name , PKG_VERSION => $pkg_ver } );
72
        $Package{$pkg_name}{$pkg_ver} = $pkgInfo;
73
        if ( ! $pkgInfo->foundDetails() )
74
        {
75
            print "PACKAGE DETAILS NOT FOUND: $pkg_name $pkg_ver\n";
76
        }
77
    }
78
    else
79
    {
80
        return if ( $ONLY_DISPLAY_ONCE );
81
    }
82
 
83
    foreach my $depName ( $pkgInfo->getDependencyNames() )
84
    {
85
        my $depPkg = $pkgInfo->getDependencyObject($depName);
86
        my $depVer = $depPkg->pkg_version();
87
 
88
#        next if ( exists( $Package{$depName}{$depVer} ) );
89
 
90
#        print ' ' x ($level * 4), "Depends: Name $depName $depVer, \n";
91
        GetDepends( $level + 1, $depName, $depVer );
92
 
93
    }
94
}
95
 
96
sub displayName
97
{
98
    my ($level, $name, $ver ) = @_;
99
    if ( $ONLY_DISPLAY_ONCE )
100
    {
101
        print  "Package $name $ver\n" unless $Package{$name};
102
    }
103
    else
104
    {
105
        print  ' ' x ($level * 4), "Package $name $ver\n";
106
    }
107
 
108
}
109
 
110
 
111
#-------------------------------------------------------------------------------
112
# Function        : StorePackage
113
#
114
# Description     : Store Package information
115
#
116
# Inputs          : $pkg_name
117
#                   $pkg_ver
118
#                   $pkg_info
119
#
120
# Returns         :
121
#
122
 
123
 
124
 
125
#DebugDumpData("PackageData2", \$pkgInfo );
126