Subversion Repositories DevTools

Rev

Rev 7319 | Rev 7321 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 7319 Rev 7320
Line 41... Line 41...
41
use FileUtils;
41
use FileUtils;
42
use JatsBuildFiles;
42
use JatsBuildFiles;
43
use JatsVersionUtils;
43
use JatsVersionUtils;
44
use ArrayHashUtils;
44
use ArrayHashUtils;
45
use ToolsetFiles;
45
use ToolsetFiles;
-
 
46
use ReadBuildConfig;
46
 
47
 
47
use Pod::Usage;                             # required for help support
48
use Pod::Usage;                             # required for help support
48
use Getopt::Long qw(:config require_order); # Stop on non-option
49
use Getopt::Long qw(:config require_order); # Stop on non-option
49
use Digest;
50
use Digest;
50
use JSON;
51
use JSON;
Line 74... Line 75...
74
#   Globals - Provided by the JATS environment
75
#   Globals - Provided by the JATS environment
75
#
76
#
76
my $USER            = $ENV{'USER'};
77
my $USER            = $ENV{'USER'};
77
my $UNIX            = $ENV{'GBE_UNIX'};
78
my $UNIX            = $ENV{'GBE_UNIX'};
78
my $HOME            = $ENV{'HOME'};
79
my $HOME            = $ENV{'HOME'};
-
 
80
my $GBE_ABT         = $ENV{'GBE_ABT'};
79
my $GBE_SANDBOX     = $ENV{'GBE_SANDBOX'};
81
my $GBE_SANDBOX     = $ENV{'GBE_SANDBOX'};
80
my $GBE_DPKG_SBOX   = $ENV{'GBE_DPKG_SBOX'};
82
my $GBE_DPKG_SBOX   = $ENV{'GBE_DPKG_SBOX'};
81
my $GBE_MACHTYPE    = $ENV{'GBE_MACHTYPE'};
83
my $GBE_MACHTYPE    = $ENV{'GBE_MACHTYPE'};
82
my $GBE_BUILDFILTER = $ENV{'GBE_BUILDFILTER'};
84
my $GBE_BUILDFILTER = $ENV{'GBE_BUILDFILTER'};
83
 
85
 
Line 127... Line 129...
127
#
129
#
128
#   Configure the error reporting process now that we have the user options
130
#   Configure the error reporting process now that we have the user options
129
#
131
#
130
ErrorConfig( 'name'    => 'SANDBOX',
132
ErrorConfig( 'name'    => 'SANDBOX',
131
             'verbose' => $opt_verbose );
133
             'verbose' => $opt_verbose );
-
 
134
InitFileUtils();
132
 
135
 
133
#
136
#
134
#   Reconfigure the options parser to allow subcommands to parse options
137
#   Reconfigure the options parser to allow subcommands to parse options
135
#
138
#
136
Getopt::Long::Configure('permute');
139
Getopt::Long::Configure('permute');
Line 159... Line 162...
159
errorBuild(1, @ARGV)                    if ( $cmd =~ m/^unerror$/  );
162
errorBuild(1, @ARGV)                    if ( $cmd =~ m/^unerror$/  );
160
fingerPrintPkg(@ARGV)                   if ( $cmd =~ m/^finger/i );
163
fingerPrintPkg(@ARGV)                   if ( $cmd =~ m/^finger/i );
161
testLinks(@ARGV)                        if ( $cmd =~ m/^testlinks/i );
164
testLinks(@ARGV)                        if ( $cmd =~ m/^testlinks/i );
162
setScanDepth(@ARGV)                     if ( $cmd =~ m/^scandepth/i );
165
setScanDepth(@ARGV)                     if ( $cmd =~ m/^scandepth/i );
163
writeBuildData(@ARGV)                   if ( $cmd =~ m/^writeBuildData/i );
166
writeBuildData(@ARGV)                   if ( $cmd =~ m/^writeBuildData/i );
-
 
167
generatepkgSignatures(@ARGV)            if ( $cmd =~ m/^genPkgSigs/i );
-
 
168
setAbtMarker(@ARGV)                     if ( $cmd =~ m/^setAbtMarker/i );
164
 
169
 
165
Error ("Unknown sandbox command: $cmd");
170
Error ("Unknown sandbox command: $cmd");
166
exit 1;
171
exit 1;
167
 
172
 
168
 
173
 
Line 351... Line 356...
351
#
356
#
352
sub errorBuild
357
sub errorBuild
353
{
358
{
354
    my ($mode, @cmd_opts ) = @_;
359
    my ($mode, @cmd_opts ) = @_;
355
    my $machine;
360
    my $machine;
-
 
361
    my $opt_removeAll;
356
 
362
 
357
    Getopt::Long::Configure('pass_through');
363
    Getopt::Long::Configure('pass_through');
358
    getOptionsFromArray ( \@cmd_opts,
364
    getOptionsFromArray ( \@cmd_opts,
359
                        'machine!' => \$machine,
365
                          'machine!' => \$machine,
-
 
366
                          'removeAll!' => \$opt_removeAll,
360
                        ) || Error ("Invalid command line" );
367
                        ) || Error ("Invalid command line" );
361
 
368
 
362
    SubCommandHelp( $opt_help, "Error Build") if ($opt_help );
369
    SubCommandHelp( $opt_help, "Error Build") if ($opt_help );
363
    Error ("Command must be executed from within a Sandbox") unless ( $GBE_SANDBOX );
370
    Error ("Command must be executed from within a Sandbox") unless ( $GBE_SANDBOX );
364
 
371
 
365
    #
372
    #
-
 
373
    #   Remove all - applies to error and unerror
-
 
374
    #
-
 
375
    if ($opt_removeAll) {
-
 
376
        my @deleteList = glob (CatPaths($GBE_SANDBOX, 'sandbox_dpkg_archive', '_error.*'));
-
 
377
        foreach my $file (@deleteList)
-
 
378
        {
-
 
379
            Message ("UnError: $file");
-
 
380
            unlink $file;
-
 
381
        }
-
 
382
    }
-
 
383
 
-
 
384
    #
366
    #   Determine Sandbox information
385
    #   Determine Sandbox information
367
    #   Populate global variables
386
    #   Populate global variables
368
    #
387
    #
369
    calc_sandbox_info(1);
388
    calc_sandbox_info(1);
370
 
389
 
371
    #
390
    #
372
    #   Display only
391
    #   Display only
373
    #   
392
    #   
374
    unless( @cmd_opts)
393
    unless( @cmd_opts )
375
    {
394
    {
376
        foreach my $pkg (keys %packages)
395
        foreach my $pkg (keys %packages)
377
        {
396
        {
378
            my $fe = $packages{$pkg};
397
            my $fe = $packages{$pkg};
379
            next unless $fe->{buildError};
398
            next unless $fe->{buildError};
Line 481... Line 500...
481
    #
500
    #
482
    Message ("Scope      : " . ($opt_allSandbox ? 'Entire Sandbox' : $packages{$currentPkgTag}{dname} ));
501
    Message ("Scope      : " . ($opt_allSandbox ? 'Entire Sandbox' : $packages{$currentPkgTag}{dname} ));
483
    Message ("Base       : $GBE_SANDBOX");
502
    Message ("Base       : $GBE_SANDBOX");
484
    Message ("Archive    : $GBE_DPKG_SBOX");
503
    Message ("Archive    : $GBE_DPKG_SBOX");
485
    Message ("BuildFilter: $GBE_BUILDFILTER" . ( (-f $filterFile)  ? ' - Local to sandbox' : ''));
504
    Message ("BuildFilter: $GBE_BUILDFILTER" . ( (-f $filterFile)  ? ' - Local to sandbox' : ''));
-
 
505
    Message ("Type       : Auto Build Tool" ) if (defined $GBE_ABT);
486
 
506
 
487
    if ($showOrder)
507
    if ($showOrder)
488
    {
508
    {
489
        Message ("Build Order");
509
        Message ("Build Order");
490
        foreach my $pname ( @stopped ) {
510
        foreach my $pname ( @stopped ) {
Line 890... Line 910...
890
#                                 Undef if not found     
910
#                                 Undef if not found     
891
#
911
#
892
sub locatePreBuiltPackage
912
sub locatePreBuiltPackage
893
{
913
{
894
    my ($fe) = @_;
914
    my ($fe) = @_;
-
 
915
    my $inSandbox = 1;
895
 
916
 
896
    #
917
    #
897
    #   Get the package signature
918
    #   Get the package signature
898
    #
919
    #
899
    my $pkgSig = getPackageSignature($fe);
920
    my $pkgSig = getPackageSignature($fe);
Line 901... Line 922...
901
 
922
 
902
    #
923
    #
903
    #   Look in each package archive directory
924
    #   Look in each package archive directory
904
    #   
925
    #   
905
    foreach my $dpkg ( $GBE_DPKG_SBOX,
926
    foreach my $dpkg ( $GBE_DPKG_SBOX,
-
 
927
                       '--EndSandbox',
906
                       $GBE_DPKG_LOCAL,
928
                       $GBE_DPKG_LOCAL,
907
                       $GBE_DPKG_CACHE,
929
                       $GBE_DPKG_CACHE,
908
                       $GBE_DPKG_REPLICA,
930
                       $GBE_DPKG_REPLICA,
909
                       $GBE_DPKG,
931
                       $GBE_DPKG,
910
                       $GBE_DPLY,
932
                       $GBE_DPLY,
911
                       $GBE_DPKG_STORE )
933
                       $GBE_DPKG_STORE )
912
    {
934
    {
-
 
935
        if ($dpkg && $dpkg eq '--EndSandbox') {
-
 
936
            $inSandbox = 0;
-
 
937
            next;
-
 
938
        }
-
 
939
 
-
 
940
        #
-
 
941
        #   Don't attempt to locate prebuilt packages in a build system sandbox
-
 
942
        #   as the packages may be partially formed. The packages MUST be found in
-
 
943
        #   a regular package store
-
 
944
        #   
-
 
945
        if ( $inSandbox && defined($GBE_ABT) )
-
 
946
        {
-
 
947
            next;
-
 
948
        }
-
 
949
 
913
        my $pkgDir = catdir( $dpkg, $fe->{mname}, $pkgSig);
950
        my $pkgDir = catdir( $dpkg, $fe->{mname}, $pkgSig);
914
        if (-d $pkgDir )
951
        if (-d $pkgDir )
915
        {
952
        {
916
            Debug("Prebuilt Package found: $pkgSig");
953
            Debug("Prebuilt Package found: $pkgSig");
917
            return (1, $pkgSig);
954
            return (1, $pkgSig);
Line 1542... Line 1579...
1542
    my (@cmd_opts ) = @_;
1579
    my (@cmd_opts ) = @_;
1543
    my $opt_outfile;
1580
    my $opt_outfile;
1544
 
1581
 
1545
    Getopt::Long::Configure('pass_through');
1582
    Getopt::Long::Configure('pass_through');
1546
    getOptionsFromArray ( \@cmd_opts,
1583
    getOptionsFromArray ( \@cmd_opts,
1547
                           'outfile=s'  => \$opt_outfile,
1584
                          'outfile=s'   => \$opt_outfile,
1548
                          ) || Error ("Invalid command line" );
1585
                          ) || Error ("Invalid command line" );
1549
    SubCommandHelp( $opt_help, 'Write Build Data') if ($opt_help  );
1586
    SubCommandHelp( $opt_help, 'Write Build Data') if ($opt_help  );
1550
 
1587
 
1551
    #
1588
    #
1552
    #   Calculate sandbox info
1589
    #   Calculate sandbox info
Line 1564... Line 1601...
1564
    #                     
1601
    #                     
1565
    #   
1602
    #   
1566
    my %BuildData;
1603
    my %BuildData;
1567
    my @BuildPlan = ();
1604
    my @BuildPlan = ();
1568
    my @BuildEntry;
1605
    my @BuildEntry;
-
 
1606
    my @PkgData;
-
 
1607
 
-
 
1608
    foreach my $fe ( @build_order ) {
-
 
1609
        my $data;
-
 
1610
        $data->{name} = $fe->{dname};
-
 
1611
        $data->{signature} = $fe->{signature};
-
 
1612
        $data->{error} = $fe->{buildError} ? 1 : 0;
-
 
1613
        $data->{excluded} = $fe->{buildExclude} ? 1 : 0;
-
 
1614
        $data->{prebuilt} = $fe->{si} eq 1? 1 : 0;
-
 
1615
        push @PkgData, $data;
-
 
1616
    }
-
 
1617
 
1569
 
1618
 
1570
    foreach my $fe ( @build_order ) {
1619
    foreach my $fe ( @build_order ) {
1571
        next if $fe->{buildError};
1620
        next if $fe->{buildError};
1572
        next if $fe->{buildExclude};
1621
        next if $fe->{buildExclude};
1573
        next if $fe->{buildSkip};
1622
        next if $fe->{buildSkip};
Line 1592... Line 1641...
1592
        $pkgData->{dname} = $BuildPkg->{dname};
1641
        $pkgData->{dname} = $BuildPkg->{dname};
1593
        $pkgData->{dir} = $BuildPkg->{dir};
1642
        $pkgData->{dir} = $BuildPkg->{dir};
1594
        $pkgData->{name} = $BuildPkg->{name};
1643
        $pkgData->{name} = $BuildPkg->{name};
1595
        $pkgData->{version} = $BuildPkg->{version};
1644
        $pkgData->{version} = $BuildPkg->{version};
1596
        $pkgData->{prj} = $BuildPkg->{prj};
1645
        $pkgData->{prj} = $BuildPkg->{prj};
-
 
1646
 
-
 
1647
        if ($BuildPkg->{si} eq 3)
-
 
1648
        {
-
 
1649
            $pkgData->{error} = 1;
-
 
1650
            $pkgData->{signature} = "MSG: Cannot create";
-
 
1651
            $pkgData->{generic} = 0;
-
 
1652
        }
-
 
1653
        else
-
 
1654
        {
-
 
1655
            $pkgData->{error} = 1;
1597
        $pkgData->{signature} = $BuildPkg->{signature};
1656
            $pkgData->{signature} = $BuildPkg->{signature};
-
 
1657
 
-
 
1658
            #
-
 
1659
            #   Determine if the package is 'GENERIC'
-
 
1660
            #   Read in the build.cfg file
-
 
1661
            #
-
 
1662
            my $pkgInterface = getpkgInterface($BuildPkg);
-
 
1663
            ReadBuildConfig( $pkgInterface, '', '--NoError' );
-
 
1664
            $pkgData->{generic} = ReadBuildConfig::isGenericBuild();
-
 
1665
        }
1598
    }
1666
    }
1599
 
1667
 
1600
    $BuildData{BuildPkgData} = $pkgData;
1668
    $BuildData{BuildPkgData} = $pkgData;
1601
    $BuildData{BuildPkg} = $BuildPkg->{fname};
1669
    $BuildData{PkgData} = \@PkgData;
1602
 
1670
 
1603
#DebugDumpData("data", $BuildPkg);
1671
#DebugDumpData("data", $BuildPkg);
1604
 
1672
 
-
 
1673
    if ($opt_outfile) {
-
 
1674
        FileCreate($opt_outfile, to_json( \%BuildData, { ascii => 1, pretty => 1 }));
-
 
1675
    } else {
1605
    print( to_json( \%BuildData, { ascii => 1, pretty => 1 }) . "\n");
1676
        print( to_json( \%BuildData, { ascii => 1, pretty => 1 }) . "\n");
-
 
1677
    }
1606
#    DebugDumpData("BuildData",\%BuildData);
1678
#    DebugDumpData("BuildData",\%BuildData);
1607
    #
1679
    #
1608
    #   All done
1680
    #   All done
1609
    #
1681
    #
1610
    exit(0);
1682
    exit(0);
1611
}
1683
}
1612
 
1684
 
1613
#-------------------------------------------------------------------------------
1685
#-------------------------------------------------------------------------------
-
 
1686
# Function        : setAbtMarker 
-
 
1687
#
-
 
1688
# Description     : Set a marker file in the sandbox such that JATS will recognise
-
 
1689
#                   the sandbox as being a special ABT enabled sandbox
-
 
1690
#
-
 
1691
# Inputs          : None    
-
 
1692
#
-
 
1693
# Returns         : Does not return 
-
 
1694
#
-
 
1695
sub setAbtMarker
-
 
1696
{
-
 
1697
    my (@cmd_opts ) = @_;
-
 
1698
 
-
 
1699
    Getopt::Long::Configure('pass_through');
-
 
1700
    getOptionsFromArray ( \@cmd_opts,
-
 
1701
                          ) || Error ("Invalid command line" );
-
 
1702
    SubCommandHelp( $opt_help, 'Set Abt Marker') if ($opt_help  );
-
 
1703
 
-
 
1704
    Message ("Setting ABT marker file");
-
 
1705
    TouchFile( CatPaths($GBE_DPKG_SBOX, 'abtMarker'));
-
 
1706
    $GBE_ABT = 1;
-
 
1707
 
-
 
1708
    #
-
 
1709
    #   All done
-
 
1710
    #
-
 
1711
    exit(0);
-
 
1712
}
-
 
1713
 
-
 
1714
#-------------------------------------------------------------------------------
-
 
1715
# Function        : generatepkgSignatures 
-
 
1716
#
-
 
1717
# Description     : Generate package signatures for dependent packages
-
 
1718
#                   Intended to be used by build systems 
-
 
1719
#
-
 
1720
# Inputs          : 
-
 
1721
#
-
 
1722
# Returns         : 
-
 
1723
#
-
 
1724
sub generatepkgSignatures
-
 
1725
{
-
 
1726
    my (@cmd_opts ) = @_;
-
 
1727
 
-
 
1728
    Getopt::Long::Configure('pass_through');
-
 
1729
    getOptionsFromArray ( \@cmd_opts,
-
 
1730
                          ) || Error ("Invalid command line" );
-
 
1731
    SubCommandHelp( $opt_help, 'Generate Package Signatures') if ($opt_help  );
-
 
1732
 
-
 
1733
    #
-
 
1734
    #   Calculate sandbox info
-
 
1735
    #   All data written will be based on this information
-
 
1736
    #
-
 
1737
    Message ("Generating Package Signatures");
-
 
1738
    calc_sandbox_info();
-
 
1739
    calc_signature_info();
-
 
1740
 
-
 
1741
    #
-
 
1742
    #   All done
-
 
1743
    #
-
 
1744
    exit(0);
-
 
1745
}
-
 
1746
 
-
 
1747
#-------------------------------------------------------------------------------
1614
# Function        : calc_signature_info 
1748
# Function        : calc_signature_info 
1615
#
1749
#
1616
# Description     : Calculate signature information for all packages in the sandbox
1750
# Description     : Calculate signature information for all packages in the sandbox
1617
#                   Used to create build system information 
1751
#                   Used to create build system information 
1618
#
1752
#
Line 1626... Line 1760...
1626
#                       4 - Excluded - Dependent package has no signature
1760
#                       4 - Excluded - Dependent package has no signature
1627
#                       5 - Excluded - Packages skipped or not active 
1761
#                       5 - Excluded - Packages skipped or not active 
1628
#
1762
#
1629
sub calc_signature_info
1763
sub calc_signature_info
1630
{
1764
{
-
 
1765
    Debug("calc_signature_info");
-
 
1766
    SystemConfig(ExitOnError => 0);
1631
    foreach my $fe ( @build_order )
1767
    foreach my $fe ( @build_order )
1632
    {
1768
    {
1633
        next if (exists $fe->{si});
1769
        if (exists $fe->{si}) {
-
 
1770
            Debug("calc_signature_info. Exists $fe->{dname}, $fe->{si}");
-
 
1771
            next;
-
 
1772
        }
1634
        if ( !$fe->{buildActive} || $fe->{buildSkip} ) {
1773
        if ( !$fe->{buildActive} || $fe->{buildSkip} ) {
1635
            $fe->{si} = 5;
1774
            $fe->{si} = 5;
-
 
1775
            Debug("calc_signature_info. Skip $fe->{dname}");
1636
            next;
1776
            next;
1637
        }
1777
        }
1638
 
1778
 
1639
        #
1779
        #
1640
        #   If this package has a signature file then we don't need to re-create it
1780
        #   If this package has a signature file then we don't need to re-create it
Line 1642... Line 1782...
1642
        my $result = 0;
1782
        my $result = 0;
1643
        my ($preBuilt, $haveSignature) = locatePreBuiltPackage($fe);
1783
        my ($preBuilt, $haveSignature) = locatePreBuiltPackage($fe);
1644
        unless ($haveSignature) {
1784
        unless ($haveSignature) {
1645
            my $dir = $fe->{dir};
1785
            my $dir = $fe->{dir};
1646
            $result = JatsCmd( "-cd=$dir", 'build', 'signature');
1786
            $result = JatsCmd( "-cd=$dir", 'build', 'signature');
-
 
1787
            Debug("calc_signature_info. $fe->{dname} Build Signature. $result");
1647
            }
1788
            }
1648
 
1789
 
1649
        unless ($result) {
1790
        unless ($result) {
1650
            #
1791
            #
1651
            #   Signature generated OK
1792
            #   Signature generated OK
1652
            #
1793
            #
1653
            ($preBuilt, $haveSignature) = locatePreBuiltPackage($fe);
1794
            ($preBuilt, $haveSignature) = locatePreBuiltPackage($fe);
-
 
1795
            Debug("calc_signature_info. $fe->{dname} Examine: $preBuilt, $haveSignature");
1654
            if ($preBuilt) {
1796
            if ($preBuilt) {
1655
                $fe->{si} = 1;
1797
                $fe->{si} = 1;
1656
                $fe->{signature} = $haveSignature;
1798
                $fe->{signature} = $haveSignature;
1657
            } elsif ($haveSignature) {
1799
            } elsif ($haveSignature) {
1658
                $fe->{si} = 2;
1800
                $fe->{si} = 2;
Line 1665... Line 1807...
1665
        #
1807
        #
1666
        #   Error creating the signature
1808
        #   Error creating the signature
1667
        #   Mark this package and all those that depend on it
1809
        #   Mark this package and all those that depend on it
1668
        #   
1810
        #   
1669
        if ($result) {
1811
        if ($result) {
-
 
1812
            Debug("calc_signature_info. Error $fe->{dname}");
1670
            $fe->{si} = 3;
1813
            $fe->{si} = 3;
1671
            if ( exists($fe->{'usedBy'}))
1814
            if ( exists($fe->{'usedBy'}))
1672
            {
1815
            {
1673
                foreach my $entry (@{$fe->{'usedBy'}}) {
1816
                foreach my $entry (@{$fe->{'usedBy'}}) {
1674
                    my $pe = $packages{$entry};
1817
                    my $pe = $packages{$entry};
Line 2715... Line 2858...
2715
    if ($preBuilt) {
2858
    if ($preBuilt) {
2716
        $txt .= ' [PreBuilt]';
2859
        $txt .= ' [PreBuilt]';
2717
        $statusP = 'P';
2860
        $statusP = 'P';
2718
    }
2861
    }
2719
    
2862
    
-
 
2863
    unless ($GBE_ABT) {
2720
    my $plink = catdir( $GBE_DPKG_SBOX, $fe->{name}, 'sandbox.' . $fe->{prj} . '.lnk' );
2864
        my $plink = catdir( $GBE_DPKG_SBOX, $fe->{name}, 'sandbox.' . $fe->{prj} . '.lnk' );
2721
    my $linkTarget = getPackageLink ($plink);
2865
        my $linkTarget = getPackageLink ($plink);
2722
    Verbose ("Sandbox link: $plink -> $linkTarget");
2866
        Verbose ("Sandbox link: $plink -> $linkTarget");
2723
    if (-d $linkTarget) {
2867
        if (-d $linkTarget) {
2724
        $txt .= ' [Local]';
2868
            $txt .= ' [Local]';
2725
        if ($preBuilt) {
2869
            if ($preBuilt) {
2726
            $statusP = 'M';
2870
                $statusP = 'M';
2727
        } else {
2871
            } else {
2728
            $statusP = 'L';
2872
                $statusP = 'L';
-
 
2873
            }
2729
        }
2874
        }
2730
    }
2875
    }
2731
 
2876
 
2732
    return "$statusS$statusB$statusP$statusF", $txt ;
2877
    return "$statusS$statusB$statusP$statusF", $txt ;
2733
}
2878
}
Line 3042... Line 3187...
3042
    make                - Do 'make' in all sandbox components
3187
    make                - Do 'make' in all sandbox components
3043
    clean               - Do 'make clean' in all sandbox components
3188
    clean               - Do 'make clean' in all sandbox components
3044
    clobber             - Do 'build clobber' is all sandbox components
3189
    clobber             - Do 'build clobber' is all sandbox components
3045
    cache               - Cache external dependent packages
3190
    cache               - Cache external dependent packages
3046
    writeBuildData      - Write out build data
3191
    writeBuildData      - Write out build data
-
 
3192
    genPkgSigs          - Generate package Signatures
-
 
3193
    setAbtMarker        - Set Build System Marker file
3047
 
3194
 
3048
 Use the command
3195
 Use the command
3049
    jats sandbox 'command' -h
3196
    jats sandbox 'command' -h
3050
 for command specific help
3197
 for command specific help
3051
 
3198
 
Line 3783... Line 3930...
3783
 
3930
 
3784
 Command Options
3931
 Command Options
3785
    -help[=n]               - Command specific help, [n=1,2,3]
3932
    -help[=n]               - Command specific help, [n=1,2,3]
3786
    -man                    - Same as -help=3
3933
    -man                    - Same as -help=3
3787
    -[no]machine            - Skip on on this type of machine
3934
    -[no]machine            - Skip on on this type of machine
-
 
3935
    -[no]removeAll          - Remove all error indications
3788
 
3936
 
3789
=head2 ARGUMENTS
3937
=head2 ARGUMENTS
3790
 
3938
 
3791
Arguments to the 'error' command are the names of packages to be marked.
3939
Arguments to the 'error' command are the names of packages to be marked.
3792
 
3940
 
Line 3802... Line 3950...
3802
 
3950
 
3803
=item -[no]machine
3951
=item -[no]machine
3804
 
3952
 
3805
This option will flag that the package will be skipped only on this type of build machine.
3953
This option will flag that the package will be skipped only on this type of build machine.
3806
 
3954
 
-
 
3955
=item -[no]removeAll
-
 
3956
 
-
 
3957
This option will cause all error indication to be removed. It can be used in conjunction with 
-
 
3958
other operations.
-
 
3959
 
3807
=back
3960
=back
3808
 
3961
 
3809
=head2 DESCRIPTION
3962
=head2 DESCRIPTION
3810
 
3963
 
3811
The 'error' command markes the named packages to as having build errors. These packages, and packages that
3964
The 'error' command markes the named packages to as having build errors. These packages, and packages that
Line 4328... Line 4481...
4328
 
4481
 
4329
    jats sandbox writeBuildData -outpath=data.json
4482
    jats sandbox writeBuildData -outpath=data.json
4330
 
4483
 
4331
will write a json formatted file that contains data for the build system.
4484
will write a json formatted file that contains data for the build system.
4332
 
4485
 
-
 
4486
=for comment ==================================================================
-
 
4487
 
-
 
4488
=head1 Generate Package Signatures
-
 
4489
 
-
 
4490
=head2 NAME
-
 
4491
 
-
 
4492
Generate Package Signatures
-
 
4493
 
-
 
4494
=head2 SYNOPSIS
-
 
4495
 
-
 
4496
jats sandbox genPkgSigs [options]
-
 
4497
 
-
 
4498
 Command Options
-
 
4499
    -help[=n]               - Command specific help, [n=1,2,3]
-
 
4500
    -man                    - Same as -help=3
-
 
4501
 
-
 
4502
=head2 ARGUMENTS
-
 
4503
 
-
 
4504
This command does not take any arguments
-
 
4505
 
-
 
4506
=head2 OPTIONS
-
 
4507
 
-
 
4508
The 'genPkgSigs' command does not have any command specific options.
-
 
4509
 
-
 
4510
=head2 DESCRIPTION
-
 
4511
 
-
 
4512
The genPkgSigs command is used by the automated build system to generate package signatures
-
 
4513
of all dependent packages.
-
 
4514
 
-
 
4515
=head2 EXAMPLES
-
 
4516
 
-
 
4517
The command
-
 
4518
 
-
 
4519
    jats -cd PackagePath sandbox genPkgSigs
-
 
4520
 
-
 
4521
=for comment ==================================================================
-
 
4522
 
-
 
4523
=head1 Set Abt Marker
-
 
4524
 
-
 
4525
=head2 NAME
-
 
4526
 
-
 
4527
Set Abt Marker file
-
 
4528
 
-
 
4529
=head2 SYNOPSIS
-
 
4530
 
-
 
4531
jats sandbox setAbtMarker [options]
-
 
4532
 
-
 
4533
 Command Options
-
 
4534
    -help[=n]               - Command specific help, [n=1,2,3]
-
 
4535
    -man                    - Same as -help=3
-
 
4536
 
-
 
4537
=head2 ARGUMENTS
-
 
4538
 
-
 
4539
This command does not take any arguments
-
 
4540
 
-
 
4541
=head2 OPTIONS
-
 
4542
 
-
 
4543
The 'setAbtMarker' command does not have any command specific options.
-
 
4544
 
-
 
4545
=head2 DESCRIPTION
-
 
4546
 
-
 
4547
The setAbtMarker command is used by the automated build system to place a marker file
-
 
4548
in the sandbox such that JATS will recognise the sandbox as being used by the 
-
 
4549
'Auto Build Tool'. This will affect the operation of several Jats commands.
-
 
4550
 
-
 
4551
=head2 EXAMPLES
-
 
4552
 
-
 
4553
The command
-
 
4554
 
-
 
4555
    jats -cd PackagePath sandbox setAbtMarker
-
 
4556
 
4333
=cut
4557
=cut
4334
 
4558