summaryrefslogtreecommitdiff
path: root/perl/header_templates/runtime_prefix.template.pl
blob: 9d28b3d8636c6c6d48ea287a5fef0f7833f6c08c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# BEGIN RUNTIME_PREFIX generated code.
#
# This finds our Git::* libraries relative to the script's runtime path.
sub __git_system_path {
	my ($relpath) = @_;
	my $gitexecdir_relative = '@@GITEXECDIR_REL@@';

	# GIT_EXEC_PATH is supplied by `git` or the test suite.
	my $exec_path;
	if (exists $ENV{GIT_EXEC_PATH}) {
		$exec_path = $ENV{GIT_EXEC_PATH};
	} else {
		# This can happen if this script is being directly invoked instead of run
		# by "git".
		require FindBin;
		$exec_path = $FindBin::Bin;
	}

	# Trim off the relative gitexecdir path to get the system path.
	(my $prefix = $exec_path) =~ s/\Q$gitexecdir_relative\E$//;

	require File::Spec;
	return File::Spec->catdir($prefix, $relpath);
}

BEGIN {
	use lib split /@@PATHSEP@@/,
	(
		$ENV{GITPERLLIB} ||
		do {
			my $perllibdir = __git_system_path('@@PERLLIBDIR_REL@@');
			(-e $perllibdir) || die("Invalid system path ($relpath): $path");
			$perllibdir;
		}
	);

	# Export the system locale directory to the I18N module. The locale directory
	# is only installed if NO_GETTEXT is set.
	$Git::I18N::TEXTDOMAINDIR = __git_system_path('@@LOCALEDIR_REL@@');
}

# END RUNTIME_PREFIX generated code.