Subversion Repositories DevTools

Rev

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

Rev 7306 Rev 7307
Line 63... Line 63...
63
my @opt_ignorePackage;                      # Control recursion
63
my @opt_ignorePackage;                      # Control recursion
64
my $opt_allSandbox;                         # Extend scope to entire sandbox
64
my $opt_allSandbox;                         # Extend scope to entire sandbox
65
my $opt_processUsedBy;                      # Process dependants(consumers) not dependents(children)
65
my $opt_processUsedBy;                      # Process dependants(consumers) not dependents(children)
66
my $opt_keepgoing;                          # Ignore errors
66
my $opt_keepgoing;                          # Ignore errors
67
my $opt_reScan;                             # Rescan for buildfiles
67
my $opt_reScan;                             # Rescan for buildfiles
-
 
68
my $opt_multiBuilders = 0;                  # How handle packages with multiple bulders: 0:Error, 1:Report, 2:Ignore
68
 
69
 
69
#
70
#
70
#   Globals - Provided by the JATS environment
71
#   Globals - Provided by the JATS environment
71
#
72
#
72
my $USER            = $ENV{'USER'};
73
my $USER            = $ENV{'USER'};
Line 91... Line 92...
91
my @build_order = ();                           # Build Ordered list of entries
92
my @build_order = ();                           # Build Ordered list of entries
92
my %extern_deps;                                # Hash of external dependencies
93
my %extern_deps;                                # Hash of external dependencies
93
my %packages;                                   # Hash of packages
94
my %packages;                                   # Hash of packages
94
my $currentPkgTag;                              # Tag of the current package - if any                                          
95
my $currentPkgTag;                              # Tag of the current package - if any                                          
95
my $scanDepth;                                  # Depth for build file scan
96
my $scanDepth;                                  # Depth for build file scan
-
 
97
my $maxDname = 0;                               # Pretty display
96
 
98
 
97
#
99
#
98
#   Known files
100
#   Known files
99
#
101
#
100
my $cacheFile  = $GBE_DPKG_SBOX . '/location_cache';
102
my $cacheFile  = $GBE_DPKG_SBOX . '/location_cache';
101
my $depthFile  = $GBE_DPKG_SBOX . '/scanDepth';
103
my $depthFile  = $GBE_DPKG_SBOX . '/scanDepth';
102
my $filterFile = $GBE_SANDBOX   . '/buildfilter';
104
my $filterFile = $GBE_DPKG_SBOX . '/buildfilter';
103
 
105
 
104
#-------------------------------------------------------------------------------
106
#-------------------------------------------------------------------------------
105
# Function        : Mainline Entry Point
107
# Function        : Mainline Entry Point
106
#
108
#
107
# Description     :
109
# Description     :
Line 344... Line 346...
344
    my $show = 0;
346
    my $show = 0;
345
    my $showUsage = 0;
347
    my $showUsage = 0;
346
    my $showFingerPrint = 0;
348
    my $showFingerPrint = 0;
347
    my $showDependencies = 1;
349
    my $showDependencies = 1;
348
    my $showOrder = 1;
350
    my $showOrder = 1;
-
 
351
    my $showPath = 0;
349
 
352
 
350
    Getopt::Long::Configure('pass_through');
353
    Getopt::Long::Configure('pass_through');
351
    getOptionsFromArray ( \@cmd_opts,
354
    getOptionsFromArray ( \@cmd_opts,
352
                          'verbose:+'       => \$show,
355
                          'verbose:+'       => \$show,
353
                          'usedby'          => \$showUsage,
356
                          'usedby'          => \$showUsage,
354
                          'fingerprint!'    => \$showFingerPrint,
357
                          'fingerprint!'    => \$showFingerPrint,
355
                          'dependencies!'   => \$showDependencies,
358
                          'dependencies!'   => \$showDependencies,
356
                          'buildorder!'     => \$showOrder,
359
                          'buildorder!'     => \$showOrder,
-
 
360
                          'path!'           => \$showPath,
357
                        ) || Error ("Invalid command line" );
361
                        ) || Error ("Invalid command line" );
358
    SubCommandHelp( $opt_help, "Sandbox Information") if ($opt_help || $#cmd_opts >=0 );
362
    SubCommandHelp( $opt_help, "Sandbox Information") if ($opt_help || $#cmd_opts >=0 );
359
    $showUsage = 1 if ($show >= 2);
363
    $showUsage = 1 if ($show >= 2);
360
 
364
 
361
    #
365
    #
Line 373... Line 377...
373
    Message ("BuildFilter: $GBE_BUILDFILTER" . ( (-f $filterFile)  ? ' - Local to sandbox' : ''));
377
    Message ("BuildFilter: $GBE_BUILDFILTER" . ( (-f $filterFile)  ? ' - Local to sandbox' : ''));
374
 
378
 
375
    if ($showOrder)
379
    if ($showOrder)
376
    {
380
    {
377
        Message ("Build Order");
381
        Message ("Build Order");
378
        foreach my $pname ( @stopped )
382
        foreach my $pname ( @stopped ) {
379
        {
-
 
380
            Message( "    Level:" . "--"  . " [---] Name: " . $pname . ' (Stopped)');
383
            Message( "    Level:" . "--"  . " [---] Name: " . $pname . ' (Stopped)');
381
        }
384
        }
-
 
385
 
382
        foreach my $fe ( @build_order )
386
        foreach my $fe ( @build_order )
383
        {
387
        {
384
            displayHeader($fe, { indent => '    ', testFingerPrint =>  $showFingerPrint, showIcons => 1});
388
            displayHeader($fe, { indent => '    ', testFingerPrint =>  $showFingerPrint, showSimplePath => $showPath });
385
 
389
 
386
            if ( $show )
390
            if ( $show )
387
            {
391
            {
388
                Message( DisplayPath ("        Path: $fe->{dir}" ));
392
                Message( DisplayPath ("        Path: $fe->{dir}" ));
389
                foreach my $idep ( sort values %{$fe->{'ideps'}} )
393
                foreach my $idep ( sort values %{$fe->{'ideps'}} )
Line 532... Line 536...
532
        {
536
        {
533
            my $ifaceDir = getpkgInterface($pe);
537
            my $ifaceDir = getpkgInterface($pe);
534
            if ($ifaceDir)
538
            if ($ifaceDir)
535
            {
539
            {
536
                Message ("Generate Fingerprint");
540
                Message ("Generate Fingerprint");
-
 
541
                Verbose ("Fingerprint file: $tagFile");
537
                FileCreate( $tagFile, genPkgFingerPrint($pe,'Generation') );
542
                FileCreate( $tagFile, genPkgFingerPrint($pe,'Generation') );
538
            }
543
            }
539
            else
544
            else
540
            {
545
            {
541
                Warning("Package has not been built. Cannot generate fingerprint: $pkgName");
546
                Warning("Package has not been built. Cannot generate fingerprint: $pkgName");
Line 702... Line 707...
702
            unlink $depthFile;
707
            unlink $depthFile;
703
            Warning ("Invalid scandepth file. File deleted.");
708
            Warning ("Invalid scandepth file. File deleted.");
704
            $depth = $SCANDEPTH;
709
            $depth = $SCANDEPTH;
705
        }
710
        }
706
    }
711
    }
707
 
-
 
708
    $scanDepth = $depth;
712
    $scanDepth = $depth;
709
}
713
}
710
 
714
 
711
 
715
 
712
#-------------------------------------------------------------------------------
716
#-------------------------------------------------------------------------------
Line 994... Line 998...
994
        #       Set a suitable tag
998
        #       Set a suitable tag
995
        #
999
        #
996
        $be->{dname} = $be->{mname};
1000
        $be->{dname} = $be->{mname};
997
        $be->{tag}   = $be->{package};
1001
        $be->{tag}   = $be->{package};
998
        $be->{fname} = join ('_', $be->{name}, $be->{version});
1002
        $be->{fname} = join ('_', $be->{name}, $be->{version});
-
 
1003
        if (length ($be->{dname}) > $maxDname ) {
-
 
1004
             $maxDname = length ($be->{dname});
-
 
1005
        }
999
 
1006
 
1000
#        DebugDumpData ("be", $be );
1007
#        DebugDumpData ("be", $be );
1001
 
1008
 
1002
        #
1009
        #
1003
        #   Catch multiple builds for the same package
1010
        #   Catch multiple builds for the same package
1004
        #   Report later - when we have all
1011
        #   Report later - when we have all
1005
        #
1012
        #
1006
        next unless ( $be->{dname} );
1013
        next unless ( $be->{dname} );
1007
        push @{$multi{$be->{dname}}},$be->{dir};
1014
        push @{$multi{$be->{dname}}},$be;
1008
 
-
 
1009
        #
-
 
1010
        #   Add into dependency struct
-
 
1011
        #
-
 
1012
        $depends{$be->{tag}} = $be;
-
 
1013
    }
1015
    }
1014
 
1016
 
-
 
1017
    #
-
 
1018
    #   Detect, process and report packages that have multiple builders
-
 
1019
    #       An error that can be ignored
-
 
1020
    #
1015
    foreach my $dname ( sort keys %multi )
1021
    foreach my $dname ( sort keys %multi )
1016
    {
1022
    {
1017
        ReportError ("Multiple builders for : $dname", @{$multi{$dname}} )
1023
        my $errFn = $opt_multiBuilders ? \&Warning : \&ReportError;
1018
            if ( scalar @{$multi{$dname}} > 1 );
1024
        if ( scalar @{$multi{$dname}} > 1 )
-
 
1025
        {
-
 
1026
            my @dirList;
-
 
1027
            foreach my $be (@{$multi{$dname}}) {
-
 
1028
                push @dirList, $be->{dir};
-
 
1029
            }           
-
 
1030
            &$errFn("Multiple builders for : $dname", @dirList ) unless $opt_multiBuilders > 1;
-
 
1031
        }
-
 
1032
        else
-
 
1033
        {
-
 
1034
            #
-
 
1035
            #   Add into dependency struct
-
 
1036
            #
-
 
1037
            foreach my $be (@{$multi{$dname}}) {
-
 
1038
                $depends{$be->{tag}} = $be;
-
 
1039
            }
-
 
1040
        }
1019
    }
1041
    }
-
 
1042
    %multi = ();
1020
    ErrorDoExit();
1043
    ErrorDoExit();
1021
 
1044
 
1022
#DebugDumpData ("depends", \%depends );
1045
#DebugDumpData ("depends", \%depends );
1023
 
1046
 
1024
    #
1047
    #
Line 1499... Line 1522...
1499
                        if ($opt_keepgoing)
1522
                        if ($opt_keepgoing)
1500
                        {
1523
                        {
1501
                            Warning( "Build Cmd failure - Keep going");
1524
                            Warning( "Build Cmd failure - Keep going");
1502
                            next;
1525
                            next;
1503
                        }
1526
                        }
1504
                        Error ("Build Cmd failure");
1527
                        Error ("Build Cmd failure: $dir");
1505
                    }
1528
                    }
1506
 
1529
 
1507
                    #
1530
                    #
1508
                    #   Skip make if we have a prebuilt package
1531
                    #   Skip make if we have a prebuilt package
1509
                    #
1532
                    #
Line 1524... Line 1547...
1524
                            if ($opt_keepgoing)
1547
                            if ($opt_keepgoing)
1525
                            {
1548
                            {
1526
                                Warning( "Make Cmd failure - Keep going");
1549
                                Warning( "Make Cmd failure - Keep going");
1527
                                next;
1550
                                next;
1528
                            }
1551
                            }
1529
                            Error ("Make Cmd failure");
1552
                            Error ("Make Cmd failure: $dir");
1530
                        }
1553
                        }
1531
                    }
1554
                    }
1532
                }
1555
                }
1533
 
1556
 
-
 
1557
                Verbose ("Save fingerprint: $tagFile");
1534
                FileCreate( $tagFile, genPkgFingerPrint($fe,'Generation') );
1558
                FileCreate( $tagFile, genPkgFingerPrint($fe,'Generation') );
1535
            }
1559
            }
1536
            else
1560
            else
1537
            {
1561
            {
1538
                Message ("No file changes since last build. Skipping")
1562
                Message ("No file changes since last build. Skipping")
Line 1541... Line 1565...
1541
    }
1565
    }
1542
 
1566
 
1543
    exit 0;
1567
    exit 0;
1544
}
1568
}
1545
 
1569
 
1546
 
-
 
1547
#-------------------------------------------------------------------------------
1570
#-------------------------------------------------------------------------------
1548
# Function        : clean
1571
# Function        : clean
1549
#
1572
#
1550
# Description     : Execute a command in all the sandboxes
1573
# Description     : Execute a command in all the sandboxes
1551
#                       Locate the base of the sandbox
1574
#                       Locate the base of the sandbox
Line 2166... Line 2189...
2166
sub getOptionsFromArray
2189
sub getOptionsFromArray
2167
{
2190
{
2168
    my ($pArray, %args) = @_;
2191
    my ($pArray, %args) = @_;
2169
 
2192
 
2170
    #
2193
    #
-
 
2194
    #   Helper to parse --multiBuilders
-
 
2195
    #
-
 
2196
    my $parseMulti = sub {
-
 
2197
        my ($ref, $value) = @_;
-
 
2198
        $value = 'error' unless length($value);
-
 
2199
        my %valid = (error => 0, report => 1, ignore => 2);
-
 
2200
        unless (exists $valid{lc $value}) {
-
 
2201
            die ("Invalid option for  --$ref->{name}\n");
-
 
2202
        };
-
 
2203
        $opt_multiBuilders = $valid{lc $value};
-
 
2204
    };
-
 
2205
 
-
 
2206
 
-
 
2207
    #
2171
    #   Common arguments
2208
    #   Common arguments
2172
    #
2209
    #
2173
    my %commonOptions = (
2210
    my %commonOptions = (
2174
        'help|h:+'          => \$opt_help,
2211
        'help|h:+'          => \$opt_help,
2175
        'manual:3'          => \$opt_help,
2212
        'manual:3'          => \$opt_help,
Line 2180... Line 2217...
2180
        'ignorepackage:s'   => sub{ opts_add2List( \@opt_ignorePackage, @_ )},
2217
        'ignorepackage:s'   => sub{ opts_add2List( \@opt_ignorePackage, @_ )},
2181
        'entireSandBox!'    => \$opt_allSandbox,
2218
        'entireSandBox!'    => \$opt_allSandbox,
2182
        'users!'            => \$opt_processUsedBy,
2219
        'users!'            => \$opt_processUsedBy,
2183
        'keepgoing!'        => \$opt_keepgoing,
2220
        'keepgoing!'        => \$opt_keepgoing,
2184
        'rescan!'           => \$opt_reScan,
2221
        'rescan!'           => \$opt_reScan,
-
 
2222
        'multiBuilders:s'   => $parseMulti, 
2185
        );
2223
        );
2186
 
2224
 
2187
    #
2225
    #
2188
    #   Merge in the user options
2226
    #   Merge in the user options
2189
    #
2227
    #
Line 2199... Line 2237...
2199
}
2237
}
2200
 
2238
 
2201
#-------------------------------------------------------------------------------
2239
#-------------------------------------------------------------------------------
2202
# Function        : displayHeader 
2240
# Function        : displayHeader 
2203
#
2241
#
2204
# Description     : Display a build header
2242
# Description     : Display a build header, if the entry is active
-
 
2243
#                   ie: Between a --From and --To
2205
#
2244
#
2206
# Inputs          : $fe             - Build entry
2245
# Inputs          : $fe             - Build entry
-
 
2246
#                   Hash of options
2207
#                   $indent         - Indent text
2247
#                       indent          => Text       - Indent text
2208
#                   $showPath       - Boolean
2248
#                       showPath        => Bool
-
 
2249
#                       showSimplePath  => Bool
-
 
2250
#                       testFingerPrint => Bool
2209
#
2251
#
2210
# Returns         : True if this entry is to be fully process
2252
# Returns         : True if this entry is to be fully process
2211
#                   False if its being skipped 
2253
#                   False if its being skipped 
2212
#
2254
#
2213
sub displayHeader
2255
sub displayHeader
2214
{
2256
{
2215
    my $fe = shift @_;
2257
    my $fe = shift @_;
-
 
2258
    if ($fe->{buildActive} || $fe->{buildSkip})
-
 
2259
    {
2216
    my $args = pop @_ if (@_ > 0 and UNIVERSAL::isa($_[-1],'HASH'));
2260
        my $args = pop @_ if (@_ > 0 and UNIVERSAL::isa($_[-1],'HASH'));
2217
    #    my ($fe, %args) = @_;
2261
        #    my ($fe, %args) = @_;
2218
 
-
 
2219
    my $indent = $args->{indent} || '';
-
 
2220
    my $showPath = $args->{showPath};
-
 
2221
 
-
 
2222
    my ($status, $estatus) = addBuildInfo($fe, $args);
-
 
2223
 
2262
 
-
 
2263
        my $indent = $args->{indent} || '';
-
 
2264
        my $showPath = $args->{showPath};
-
 
2265
        my $showSimplePath = $args->{showSimplePath};
-
 
2266
 
-
 
2267
        my ($status, $estatus) = addBuildInfo($fe, $args);
-
 
2268
        $estatus = '' if $showSimplePath;
-
 
2269
         
2224
    my $msg1 = $indent . sprintf('Level:%02d [%s] Name: %s', $fe->{level}, $status, $fe->{dname} . $estatus );
2270
        my $msg1 = $indent . sprintf('Level:%02d [%s] Name: %s', $fe->{level}, $status, $fe->{dname} . $estatus );
-
 
2271
        if ($showSimplePath) {
-
 
2272
            my $msg1Len = length($msg1);
-
 
2273
            $msg1 = sprintf("%-*s Path: %s", 26 + $maxDname ,$msg1, $fe->{dir}); 
-
 
2274
        }
2225
    if ( $showPath) {
2275
        if ( $showPath) {
2226
        my $msg1Len = length($msg1);
2276
            my $msg1Len = length($msg1);
2227
        if ($msg1Len < 80) {
2277
            if ($msg1Len < 80) {
2228
            $msg1 .= ' ' . '=' x (79 - $msg1Len);
2278
                $msg1 .= ' ' . '=' x (79 - $msg1Len);
-
 
2279
            }
2229
        }
2280
        }
-
 
2281
        Message( $msg1 ,  $showPath ? DisplayPath ("        Path: $fe->{dir}" ) : undef);
2230
    }
2282
    }
2231
    Message( $msg1 ,  $showPath ? DisplayPath ("        Path: $fe->{dir}" ) : undef);
-
 
2232
 
2283
 
2233
   return $fe->{buildActive};
2284
   return $fe->{buildActive};
2234
}
2285
}
2235
 
2286
 
2236
#-------------------------------------------------------------------------------
2287
#-------------------------------------------------------------------------------
Line 2561... Line 2612...
2561
    -fromPackage=name          - Start building from package
2612
    -fromPackage=name          - Start building from package
2562
    -justPackage=name[,name]   - Build named packages
2613
    -justPackage=name[,name]   - Build named packages
2563
    -ignorePackage=name[,name] - Do not build named packages
2614
    -ignorePackage=name[,name] - Do not build named packages
2564
    -entireSandbox             - Process the entire sandbox
2615
    -entireSandbox             - Process the entire sandbox
2565
    -users                     - Process package users, not dependencies
2616
    -users                     - Process package users, not dependencies
-
 
2617
 Options common to all commands:
2566
    -[no]keepgoing             - Ignore errors
2618
    -[no]keepgoing             - Ignore errors
2567
    -[no]reScan                - Recalculate and cache sandbox structure
2619
    -[no]reScan                - Recalculate and cache sandbox structure
-
 
2620
    -multiBuilders=mode        - Handle conflicting packages. error|report|ignore
2568
 
2621
 
2569
 Commands:
2622
 Commands:
2570
    help                - Same as -help
2623
    help                - Same as -help
2571
    create              - Create a sandbox in the current directory
2624
    create              - Create a sandbox in the current directory
2572
    populate            - Populate the sandbox with packages
2625
    populate            - Populate the sandbox with packages
Line 2676... Line 2729...
2676
 
2729
 
2677
The package names can be specified as a mix of the three forms described under the '-toPackage' option.
2730
The package names can be specified as a mix of the three forms described under the '-toPackage' option.
2678
 
2731
 
2679
=item B<-[no]entireSandbox>
2732
=item B<-[no]entireSandbox>
2680
 
2733
 
2681
This option will override the automatic package localisation that will occur if the user starts the comamnd
2734
This option will override the automatic package localisation that will occur if the user starts the command
2682
within a subdirectory of a package within the sandbox and will process the entire sabdbox.
2735
within a subdirectory of a package within the sandbox and will process the entire sanbbox.
2683
 
2736
 
2684
If the user start the command within a subdirectory of a package then the sandbox commands will be localised
2737
If the user start the command within a subdirectory of a package then the sandbox commands will be localised
2685
to the current package and the dependencies of the package.
2738
to the current package and the dependencies of the package.
2686
 
2739
 
2687
=item B<-[no]users>
2740
=item B<-[no]users>
Line 2712... Line 2765...
2712
 
2765
 
2713
If a package is added or removed from the sandbox, then the sandbox will need to be rescanned.
2766
If a package is added or removed from the sandbox, then the sandbox will need to be rescanned.
2714
Jats will detect when a package has been added or removed, but if the internal structure of the
2767
Jats will detect when a package has been added or removed, but if the internal structure of the
2715
packages has changed the cached data may be incorrect. 
2768
packages has changed the cached data may be incorrect. 
2716
 
2769
 
-
 
2770
=item B<-multiBuilders=mode>
-
 
2771
 
-
 
2772
If a package-name can be built by multiple packages then the sandbox processing will
-
 
2773
normally report an error.
-
 
2774
 
-
 
2775
This option allow the error to be reported as a warning or to be ignored altogether. The named package will be 
-
 
2776
excluded from the build set.
-
 
2777
 
-
 
2778
Valid values for 'mode' are: error, report and ignore.  The default mode is 'error'.
-
 
2779
 
2717
=back
2780
=back
2718
 
2781
 
2719
=head1 DESCRIPTION
2782
=head1 DESCRIPTION
2720
 
2783
 
2721
This program is the primary tool for the maintenance of Development Sandboxes.
2784
This program is the primary tool for the maintenance of Development Sandboxes.
Line 2808... Line 2871...
2808
 
2871
 
2809
=head2 SYNOPSIS
2872
=head2 SYNOPSIS
2810
 
2873
 
2811
jats sandbox populate [command options] [packageName packageVersion]
2874
jats sandbox populate [command options] [packageName packageVersion]
2812
 
2875
 
2813
 Command Options
2876
 Common Options:
2814
    -help[=n]                  - Command specific help, [n=1,2,3]
2877
    -help[=n], -man            - Command specific help, [n=1,2,3]
2815
    -toPackage=name            - Stop building after package
2878
    -toPackage=name            - Stop building after package
2816
    -fromPackage=name          - Start building from package
2879
    -fromPackage=name          - Start building from package
2817
    -justPackage=name[,name]   - Build named packages
2880
    -justPackage=name[,name]   - Build named packages
2818
    -ignorePackage=name[,name] - Do not build named packages
2881
    -ignorePackage=name[,name] - Do not build named packages
2819
    -entireSandbox             - Process the entire sandbox
2882
    -entireSandbox             - Process the entire sandbox
2820
    -users                     - Process package users, not dependencies
2883
    -users                     - Process package users, not dependencies
-
 
2884
    -multiBuilders=mode        - Handle conflicting packages. error|report|ignore
-
 
2885
    -[no]keepgoing             - Ignore errors
-
 
2886
    -[no]reScan                - Recalculate and cache sandbox structure
-
 
2887
 Command Specific Options
2821
    -excludePackage=name[,name]- Do not extract named package
2888
    -excludePackage=name[,name]- Do not extract named package
2822
    -recurse[=n]               - Locate dependencies within packages
2889
    -recurse[=n]               - Locate dependencies within packages
2823
    -all                       - Populate with all dependencies
2890
    -all                       - Populate with all dependencies
2824
    -missing                   - Locate missing packages
2891
    -missing                   - Locate missing packages
2825
    -show                      - Show packages that would be extracted
2892
    -show                      - Show packages that would be extracted
Line 3021... Line 3088...
3021
 
3088
 
3022
=head2 SYNOPSIS
3089
=head2 SYNOPSIS
3023
 
3090
 
3024
jats sandbox info [command options]
3091
jats sandbox info [command options]
3025
 
3092
 
3026
 Command Options
3093
 Common Options:
3027
    -help[=n]                  - Command specific help, [n=1,2,3]
3094
    -help[=n], -man            - Command specific help, [n=1,2,3]
3028
    -verbose[=n]               - Display more information
-
 
3029
    -usedby                    - Display package usage information
-
 
3030
    -toPackage=name            - Stop building after package
3095
    -toPackage=name            - Stop building after package
3031
    -fromPackage=name          - Start building from package
3096
    -fromPackage=name          - Start building from package
3032
    -justPackage=name[,name]   - Build named packages
3097
    -justPackage=name[,name]   - Build named packages
3033
    -ignorePackage=name[,name] - Do not build named packages
3098
    -ignorePackage=name[,name] - Do not build named packages
3034
    -entireSandbox             - Process the entire sandbox
3099
    -entireSandbox             - Process the entire sandbox
3035
    -users                     - Process package users, not dependencies
3100
    -users                     - Process package users, not dependencies
-
 
3101
    -multiBuilders=mode        - Handle conflicting packages. error|report|ignore
-
 
3102
    -[no]keepgoing             - Ignore errors
-
 
3103
    -[no]reScan                - Recalculate and cache sandbox structure
-
 
3104
 Command Specific Options
-
 
3105
    -verbose[=n]               - Display more information
-
 
3106
    -usedby                    - Display package usage information
3036
    -fingerprint               - Display fingerprint information
3107
    -fingerprint               - Display fingerprint information
3037
    -[no]dependencies          - Display external dependencies (default)
3108
    -[no]dependencies          - Display external dependencies (default)
3038
    -[no]buildorder            - Display build order (default)
3109
    -[no]buildorder            - Display build order (default)
-
 
3110
    -[no]path                  - Display path to package
3039
 
3111
 
3040
=head2 OPTIONS
3112
=head2 OPTIONS
3041
 
3113
 
3042
=over
3114
=over
3043
 
3115
 
Line 3065... Line 3137...
3065
 
3137
 
3066
=item B<-[no]buildorder>
3138
=item B<-[no]buildorder>
3067
 
3139
 
3068
This option will cause the information display to include all the build order.
3140
This option will cause the information display to include all the build order.
3069
 
3141
 
-
 
3142
=item B<-[no]path>
-
 
3143
 
-
 
3144
This option will cause the information display to include all the path to the build file
-
 
3145
 
3070
=back
3146
=back
3071
 
3147
 
3072
=head2 DESCRIPTION
3148
=head2 DESCRIPTION
3073
 
3149
 
3074
The 'info' command will display information about the build order and the
3150
The 'info' command will display information about the build order and the
Line 3322... Line 3398...
3322
 
3398
 
3323
=head2 SYNOPSIS
3399
=head2 SYNOPSIS
3324
 
3400
 
3325
jats sandbox all [command options] [arguments]
3401
jats sandbox all [command options] [arguments]
3326
 
3402
 
3327
 Command Options
3403
 Common Options:
3328
    -help[=n]                  - Command specific help, [n=1,2,3]
3404
    -help[=n], -man            - Command specific help, [n=1,2,3]
3329
    -toPackage=name            - Stop building after package
3405
    -toPackage=name            - Stop building after package
3330
    -fromPackage=name          - Start building from package
3406
    -fromPackage=name          - Start building from package
3331
    -justPackage=name[,name]   - Build named packages
3407
    -justPackage=name[,name]   - Build named packages
3332
    -ignorePackage=name[,name] - Do not build named packages
3408
    -ignorePackage=name[,name] - Do not build named packages
3333
    -entireSandbox             - Process the entire sandbox
3409
    -entireSandbox             - Process the entire sandbox
3334
    -users                     - Process package users, not dependencies
3410
    -users                     - Process package users, not dependencies
-
 
3411
    -multiBuilders=mode        - Handle conflicting packages. error|report|ignore
3335
    -[no]keepgoing             - Ignore errors
3412
    -[no]keepgoing             - Ignore errors
-
 
3413
    -[no]reScan                - Recalculate and cache sandbox structure
-
 
3414
 Command Specific Options
3336
    -[no]skip                  - Skip if no source change (default:skip)
3415
    -[no]skip                  - Skip if no source change (default:skip)
3337
 
3416
 
3338
 
3417
 
3339
=head2 ARGUMENTS
3418
=head2 ARGUMENTS
3340
 
3419
 
Line 3384... Line 3463...
3384
 
3463
 
3385
=head2 SYNOPSIS
3464
=head2 SYNOPSIS
3386
 
3465
 
3387
jats sandbox build [command options] [arguments]
3466
jats sandbox build [command options] [arguments]
3388
 
3467
 
3389
 Command Options
3468
 Common Options:
3390
    -help[=n]                  - Command specific help, [n=1,2,3]
3469
    -help[=n], -man            - Command specific help, [n=1,2,3]
3391
    -toPackage=name            - Stop building after package
3470
    -toPackage=name            - Stop building after package
3392
    -fromPackage=name          - Start building from package
3471
    -fromPackage=name          - Start building from package
3393
    -justPackage=name[,name]   - Build named packages
3472
    -justPackage=name[,name]   - Build named packages
3394
    -ignorePackage=name[,name] - Do not build named packages
3473
    -ignorePackage=name[,name] - Do not build named packages
3395
    -entireSandbox             - Process the entire sandbox
3474
    -entireSandbox             - Process the entire sandbox
3396
    -users                     - Process package users, not dependencies
3475
    -users                     - Process package users, not dependencies
-
 
3476
    -multiBuilders=mode        - Handle conflicting packages. error|report|ignore
3397
    -[no]keepgoing             - Ignore errors
3477
    -[no]keepgoing             - Ignore errors
-
 
3478
    -[no]reScan                - Recalculate and cache sandbox structure
-
 
3479
 Command Specific Options
3398
    -[no]skip                  - Skip if no source change (default:skip)
3480
    -[no]skip                  - Skip if no source change (default:skip)
3399
 
3481
 
3400
=head2 ARGUMENTS
3482
=head2 ARGUMENTS
3401
 
3483
 
3402
Arguments are passed to the 'make' phase of the process.
3484
Arguments are passed to the 'make' phase of the process.
Line 3432... Line 3514...
3432
 
3514
 
3433
=head2 SYNOPSIS
3515
=head2 SYNOPSIS
3434
 
3516
 
3435
jats sandbox clean|clobber [command options]
3517
jats sandbox clean|clobber [command options]
3436
 
3518
 
3437
 Command Options
3519
 Common Options:
3438
    -help[=n]                  - Command specific help, [n=1,2,3]
3520
    -help[=n], -man            - Command specific help, [n=1,2,3]
3439
    -toPackage=name            - Stop building after package
3521
    -toPackage=name            - Stop building after package
3440
    -fromPackage=name          - Start building from package
3522
    -fromPackage=name          - Start building from package
3441
    -justPackage=name[,name]   - Build named packages
3523
    -justPackage=name[,name]   - Build named packages
3442
    -ignorePackage=name[,name] - Do not build named packages
3524
    -ignorePackage=name[,name] - Do not build named packages
3443
    -entireSandbox             - Process the entire sandbox
3525
    -entireSandbox             - Process the entire sandbox
3444
    -users                     - Process package users, not dependencies
3526
    -users                     - Process package users, not dependencies
-
 
3527
    -multiBuilders=mode        - Handle conflicting packages. error|report|ignore
3445
    -[no]keepgoing             - Ignore errors
3528
    -[no]keepgoing             - Ignore errors
-
 
3529
    -[no]reScan                - Recalculate and cache sandbox structure
3446
 
3530
 
3447
=head2 ARGUMENTS
3531
=head2 ARGUMENTS
3448
 
3532
 
3449
None
3533
None
3450
 
3534
 
3451
=head2 OPTIONS
3535
=head2 OPTIONS
3452
 
3536
 
3453
=over
-
 
3454
 
-
 
3455
=item B<-[no]keepgoing>
-
 
3456
 
-
 
3457
This options controls the behaviour of the command when an error is encountered.
-
 
3458
 
-
 
3459
The default operation is to terminate the command on the package with the
-
 
3460
error. This can be modified so that errors are ignored.
3537
The are no command specific options.
3461
 
-
 
3462
=back
-
 
3463
 
3538
 
3464
=head2 DESCRIPTION
3539
=head2 DESCRIPTION
3465
 
3540
 
3466
The 'clean' command will perform a 'jats make clean' in all components in the
3541
The 'clean' command will perform a 'jats make clean' in all components in the
3467
sandbox.
3542
sandbox.
Line 3477... Line 3552...
3477
 
3552
 
3478
=head2 SYNOPSIS
3553
=head2 SYNOPSIS
3479
 
3554
 
3480
jats sandbox make [command options] [arguments]
3555
jats sandbox make [command options] [arguments]
3481
 
3556
 
3482
 Command Options
3557
 Common Options:
3483
    -help[=n]                  - Command specific help, [n=1,2,3]
3558
    -help[=n], -man            - Command specific help, [n=1,2,3]
3484
    -toPackage=name            - Stop building after package
3559
    -toPackage=name            - Stop building after package
3485
    -fromPackage=name          - Start building from package
3560
    -fromPackage=name          - Start building from package
3486
    -justPackage=name[,name]   - Build named packages
3561
    -justPackage=name[,name]   - Build named packages
3487
    -ignorePackage=name[,name] - Do not build named packages
3562
    -ignorePackage=name[,name] - Do not build named packages
3488
    -entireSandbox             - Process the entire sandbox
3563
    -entireSandbox             - Process the entire sandbox
3489
    -users                     - Process package users, not dependencies
3564
    -users                     - Process package users, not dependencies
-
 
3565
    -multiBuilders=mode        - Handle conflicting packages. error|report|ignore
-
 
3566
    -[no]keepgoing             - Ignore errors
-
 
3567
    -[no]reScan                - Recalculate and cache sandbox structure
3490
 
3568
 
3491
=head2 ARGUMENTS
3569
=head2 ARGUMENTS
3492
 
3570
 
3493
Arguments are passed to the 'make' phase of the process.
3571
Arguments are passed to the 'make' phase of the process.
3494
 
3572
 
Line 3511... Line 3589...
3511
 
3589
 
3512
=head2 SYNOPSIS
3590
=head2 SYNOPSIS
3513
 
3591
 
3514
jats sandbox cmd [command options] [arguments]
3592
jats sandbox cmd [command options] [arguments]
3515
 
3593
 
3516
 Command Options
3594
 Common Options:
3517
    -help[=n]                  - Command specific help, [n=1,2,3]
3595
    -help[=n], -man            - Command specific help, [n=1,2,3]
3518
    -[no]keepgoing             - Ignore errors
-
 
3519
    -toPackage=name            - Stop building after package
3596
    -toPackage=name            - Stop building after package
3520
    -fromPackage=name          - Start building from package
3597
    -fromPackage=name          - Start building from package
3521
    -justPackage=name[,name]   - Build named packages
3598
    -justPackage=name[,name]   - Build named packages
3522
    -ignorePackage=name[,name] - Do not build named packages
3599
    -ignorePackage=name[,name] - Do not build named packages
3523
    -entireSandbox             - Process the entire sandbox
3600
    -entireSandbox             - Process the entire sandbox
3524
    -users                     - Process package users, not dependencies
3601
    -users                     - Process package users, not dependencies
-
 
3602
    -multiBuilders=mode        - Handle conflicting packages. error|report|ignore
-
 
3603
    -[no]keepgoing             - Ignore errors
-
 
3604
    -[no]reScan                - Recalculate and cache sandbox structure
3525
 
3605
 
3526
=head2 ARGUMENTS
3606
=head2 ARGUMENTS
3527
 
3607
 
3528
Arguments are passed to a JATS command.
3608
Arguments are passed to a JATS command.
3529
 
3609
 
3530
=head2 OPTIONS
3610
=head2 OPTIONS
3531
 
3611
 
3532
=over
-
 
3533
 
-
 
3534
=item B<-[no]keepgoing>
-
 
3535
 
-
 
3536
This options controls the behaviour of the command when an error is encountered.
-
 
3537
 
-
 
3538
The default operation is to terminate the command on the package with the
-
 
3539
error. This can be modified so that errors are ignored.
3612
The are no command specific options.
3540
 
3613
 
3541
=back
3614
=back
3542
 
3615
 
3543
=head2 DESCRIPTION
3616
=head2 DESCRIPTION
3544
 
3617