#{{PERL-EXEC}}

# Create migration-directory to prepare future migration

BEGIN {
  
	require 'uname.lib' ;
	$isNT = -d '\\';
	$PATHSEP = $isNT ? "\\" : "/";
	${SEP} = $isNT ? ";" : ":" ; 
	@INC = ( '.', '../../../admin/admin/bin', '/toto');
	grep { s@/@\\@g } @INC if $isNT;
	$script_suffix = $isNT ? ".bat" : "";
	$exe_suffix = $isNT ? ".exe" : "";
	# NT needs quotes around some things unix doesn't
	$quote = $isNT ? "\"" : "";

	# If this variable is set, all file/directory creation will make sure the mode
	# and ownership of the destination is the same as the source
	$PRESERVE = 1 if (!$isNT);
	$script_suffix = $isNT ? ".bat" : "";
	$exe_suffix = $isNT ? ".exe" : "";
	if ($isNT) 
	{
		$os = "WINNT";
	} 
	else 
	{
        $os = &uname("-s");
        if ($os eq "SunOS") {
			$isSolaris = 1;
            $isSolaris8 = ( &uname("-r") eq "5.8" );
        }
	}

	if ($isNT) 
	{
		# we have to pass batch files directly to the NT command interpreter
		$com_spec = $ENV{ComSpec};
		if (!$com_spec) 
		{
			$com_spec = $ENV{COMSPEC};
		}
		if (!$com_spec || ! -f $com_spec) 
		{
			# find the first available command interpreter
			foreach $drive (c..z) 
			{
				$com_spec = "$drive:\\winnt\\system32\\cmd.exe";
				last if (-f $com_spec);
				$com_spec = undef;
			}
			if (! $com_spec) 
			{
				# punt and pray
				$com_spec = 'c:\winnt\system32\cmd.exe';
			}
		}
	}
	if ( $os eq "AIX" ) 
	{
		$dll_suffix = "_shr.a";
	}	
	elsif ( $os eq "HP-UX" ) 
	{
		$dll_suffix = ".sl";
	}	
	elsif ( $os eq "WINNT" ) 
	{
		$dll_suffix = ".dll";
	}	
	else 
	{
		$dll_suffix = ".so";
	}	

	$slapdExecName = $isNT ? 'slapd.exe' : 'ns-slapd';
	select STDERR;
	$| = 1;
	select STDOUT;
	$| = 1;
}

SWITCH: {
	if ($os eq "AIX") 
	{
		$LIB_PATH = "LIBPATH" ;
		last SWITCH ;
	}
	if ($os eq "HP-UX") 
	{
		$LIB_PATH = "SHLIB_PATH" ;
		last SWITCH ;
	}
	if ($isNT) 
	{
		$LIB_PATH = "PATH" ;
		last SWITCH ;
	}
	else 
	{
		$LIB_PATH = "LD_LIBRARY_PATH" ;
		last SWITCH ;
	}
}  

${root}             = "{{DS-ROOT}}" ;

$ENV{"$LIB_PATH"}	= "${root}${PATHSEP}lib${SEP}".$ENV{"$LIB_PATH"} ;
$ENV{"PATH"}		= ".${SEP}".$ENV{"PATH"};

if ($isSolaris8) {
# for zip, we have to use nsperl
    $ENV{"$LIB_PATH"} = "$root${PATHSEP}lib${PATHSEP}nsPerl5.005_03${PATHSEP}lib${PATHSEP}sun4-solaris${PATHSEP}CORE${SEP}".$ENV{"$LIB_PATH"} ;
# for pkg, we use bunbled perl

    $ENV{"PERL5LIB"} = "$root${PATHSEP}lib${PATHSEP}nsPerl5.005_03${PATHSEP}lib${PATHSEP}site${SEP}".$ENV{"PERL5LIB"} ;

}
elsif ($isSolaris) {
    #means S9 or S10

# for zip, we have to use nsperl
    $ENV{"$LIB_PATH"} = "$root${PATHSEP}lib${PATHSEP}nsPerl5.005_03${PATHSEP}lib${PATHSEP}sun4-solaris-64int${PATHSEP}CORE${SEP}".$ENV{"$LIB_PATH"} ;

    $ENV{"PERL5LIB"} = "$root${PATHSEP}lib${PATHSEP}nsPerl5.005_03${PATHSEP}lib${PATHSEP}site${SEP}".$ENV{"PERL5LIB"} ;

}
else
{
    # on other platform, always full path
    $ENV{"PERL5LIB"} = "$root${PATHSEP}lib${PATHSEP}nsPerl5.005_03${PATHSEP}lib${PATHSEP}site${SEP}".$ENV{"PERL5LIB"} ;
}
if ($isNT) {
    $ENV{"$LIB_PATH"} = $ENV{"$LIB_PATH"}."${SEP}$root${PATHSEP}bin${PATHSEP}slapd${PATHSEP}server${SEP}" ;
}

@args = ($^X, "create_migration_dir_sub", @ARGV);
system(@args);
