#!/usr/bin/perl
#
# $Header: //sapdb/V76/c_00/b_37/sys/src/install/perl/packages/sapcrypto/instsapcrypto#1 $
# $DateTime: 2007/04/16 17:59:45 $
# $Change: 149747 $
#
# Desc:

import SAPDB::Install::StdIO;
import SAPDB::Install::System;
import SAPDB::Install::Registry;
import SAPDB::Install::Tools;
import SAPDB::Install::SetUser;
import SAPDB::Install::Cwd;


our $sec_files = {
	'sec/SDBSSLA.pse' => {'mode' => 0440},
	'sec/SDBSSLS.pse' => {'mode' => 0400},
	'sec/ticket' => {'mode' => 0440}
};




$path{'name'} = 'sap crypto path';

if($^O=~/mswin/i){
	$path{'default'} = getSysProgPath().'/sdb/programs';
}
else{
	$path{'default'} = '/opt/sdb/programs';
}

$path{'mode'}=0775;
$path{'opt'}='sapcrypto_path=s';
$path{'list'} = 'sapcrypto.lst';
$path{'update'}=0;



unless($SAPDB::Install::StartInstall::opt_INSTANCE){ # these options makes only sense if it is the first sapdb installation
	$usage= " [-sapcrypto_path <sapcrypto path>]";
	$usage_desc = "\t-sapcrypto_path <sapcrypto path>\tdirectory for sapcrypto\n";
}

@paths = (\%path);
$main_path=\%path;
$skip=0;
@opts=();



sub preinstall{
	my ($data,$prog)=readIndepPath();
    $prog =~ /\S/ or $prog = $SAPDB::Install::Values::indep_prog_path;
	$data =~ /\S/ or $data = $SAPDB::Install::Values::indep_data_path;
	$prog =~ /\S/ or print2stderr("independent program path not found\n") and diesoft($SAPDB::Install::Values::diemsg);
	$path{'default'} = $prog;
	$path{'value'}=$prog unless ($SAPDB::Install::StartInstall::opt_relocate);  
	return 1;
}
 

sub postprepare{
	 return 1;
}


sub postinstall{
	my ($data,$prog)=readIndepPath();
	rmdir("$prog/sec");
	$packobj->Untgz->SetDestDir($data);
	$packobj->Untgz->Rewind;
	my $header = 'start';
	while($header){
		$header = $packobj->Untgz->Next;
		my ($file) = ($header =~ /\s(\S+)$/);
		$file =~ s/\^.\///;
		foreach my $cf (keys(%$sec_files)){
			if($cf eq $file){
				$packobj->Untgz->ExtractFile;
				last;
			}
		}
	}
	unless($^O =~ /mswin/i){
		chmod(0510,"$data/sec");
		chown($packobj->UID,$packobj->GID,"$data/sec");
		foreach my $file (keys(%$sec_files)){
			chmod($sec_files->{$file}->{'mode'},"$data/$file");
			chown($packobj->UID,$packobj->GID,"$data/$file");	
		}
	}
	return 1;
}


sub register{
	 return 1;
}


sub unregister{
	 return 1;
}


sub preuninstall{
	 return 1;
}


sub postuninstall{
	my ($data,$prog)=readIndepPath();
	foreach my $file (keys(%$sec_files)){
		unlink("$data/$file");
	}
	rmdir("$data/sec");
	return 1;
}


sub framestop{
	 return 1;
}


1;
                                                                                                         

