The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

# dependencies are in the digest, no need to check them

if(-e $full_dependency)
	{
	unless(exists $tree->{__VIRTUAL})
		{
		# check via user defined sub
		if(defined $trigger_rule)
			{
			my ($must_build, $why) = $trigger_rule->($tree, $full_name, $tree->{$dependency}, $full_dependency) ;
			
			if($must_build)
				{
				push @{$tree->{__TRIGGERED}}, {NAME => $dependency, REASON => $why} ;
				PrintInfo("$name: trigged on '$dependency' [$why]\n") if $pbs_config->{DEBUG_DISPLAY_TRIGGED_DEPENDENCIES} ;
				$triggered++ ;
				}
			else
				{
				if($pbs_config->{DEBUG_DISPLAY_TRIGGED_DEPENDENCIES})
					{
					push @{$tree->{__NOT_TRIGGERED}}, [$dependency, 'user defined check was OK'] ;
					PrintInfo("$name: NOT trigged on '$dependency'\n") if $pbs_config->{DEBUG_DISPLAY_TRIGGED_DEPENDENCIES} ;
					}
				}
			}
		}
	}
else
	{
	unless(exists $tree->{$dependency}{__VIRTUAL})
		{
		push @{$tree->{__TRIGGERED}}, {NAME => $dependency, REASON => "Doesn't exist"} ;
		PrintInfo("$name: trigged on '$dependency' (doesn't exist)\n") if $pbs_config->{DEBUG_DISPLAY_TRIGGED_DEPENDENCIES} ;
		$triggered++ ;
		
		my $digest_file_name = $full_dependency . 'pbs_md5' ;
		if(-e $digest_file_name)
				{
				PrintWarning("Removing digest '$digest_file_name': node '$dependency->{__NAME}' doesn't exist.") ;
				unlink($digest_file_name) ;
				}
		}
	}

NAME

PBS::Check -

SYNOPSIS

use PBS::Check ;
my $triggered = CheckDependencyTree
						(
						  $tree
						, $inserted_nodes
						, $pbs_config
						, $config
						, $trigger_rule
						, $node_checker_rule
						, $build_sequence # output
						, $files_in_build_sequence # output
						) ;

DESCRIPTION

sub RegisterUserCheckSub: exported function available in Pbsfiles
sub GetUserCheckSub
sub CheckDependencyTree: checks a tree and generates a build sequence
sub LocateSource: find a file in the build directory or source directories
sub CheckTimeStamp: check 2 nodes time stamps with each other

EXPORT

CheckDependencyTree
RegisterUserCheckSub

AUTHOR

Khemir Nadim ibn Hamouda. nadim@khemir.net

SEE ALSO

2 POD Errors

The following errors were encountered while parsing the POD:

Around line 324:

Unknown directive: =comment

Around line 338:

Unknown directive: =comment