#!/usr/bin/perl
#
# $Header: //sapdb/V75/c_00/develop/sys/src/install/perl/packages/odbc/instodbc#2 $
# $DateTime: 2003/12/01 15:16:04 $
# $Change: 57901 $
#
# 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;
import SAPDB::Install::Values;

$path{'name'} = 'odbc path';

$path{'mode'}=0775;
$path{'opt'}='odbc_path=s';
$path{'list'} = 'odbc.lst';
$path{'update'}=0;
	
$usage= " [-odbc_path <instpath>]";
$usage_desc = "\t-odbc_path <instpath>\todbc installation directory\n";
                  


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


sub preinstall{
	if($SAPDB::Install::StartInstall::opt_odbc_path){
		$path{'value'}=$SAPDB::Install::StartInstall::opt_odbc_path;
	}
	else{
		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{
	return 1;    
}



sub registerWin{
	
	my $path = $path{'value'};
	setPathInEnv("$path/pgm");
	$path =~ s/\//\\/g;
	my $odbc_test = sub {
						my ($text) = @_;	
						my $rc = 0;
						$text =~ /successfully\s+registered/ and $rc = 1;
						return $rc;
					};

	callsystem("odbcreg.exe \"SAP DB\" -i -p \"".$path."\\pgm\"",$odbc_test);
	callsystem("odbcreg.exe \"SAP DB (Unicode)\" -i -p \"".$path."\\pgm\" -d sqlod32w.dll",$odbc_test);
	callsystem("odbcreg.exe \"SAP DB 7.4\" -i -p \"".$path."\\pgm\"",$odbc_test);
	callsystem("odbcreg.exe \"MaxDB\" -i -p \"".$path."\\pgm\"",$odbc_test);
	callsystem("odbcreg.exe \"MaxDB (Unicode)\" -i -p \"".$path."\\pgm\" -d sqlod32w.dll",$odbc_test);
	return 1;

}
	

sub registerUX{
	return 1;
}


*register =           $^O =~ /^MsWin/i ? \&registerWin :
        \&registerUX;



sub unregisterWin{
	my $path = $regpackobj->Path;
	setPathInEnv("$path/pgm");
	$path =~ s/\//\\/g;	
		
	my $odbc_test = sub {
						my ($text) = @_;	
						my $rc = 0;
						$text =~ /successfully\s+removed/ and $rc = 1;
						return $rc;
	};
	
	callsystem("odbcreg.exe \"SAP DB\" -r -p \"".$path."\\pgm\"",$odbc_test,1);
	callsystem("odbcreg.exe \"SAP DB (Unicode)\" -r -p \"".$path."\\pgm\" -d sqlod32w.dll",$odbc_test,1);
	callsystem("odbcreg.exe \"SAP DB 7.4\" -r -p \"".$path."\\pgm\"",$odbc_test,1);
	callsystem("odbcreg.exe \"MaxDB\" -r -p \"".$path."\\pgm\"",$odbc_test,1);
	callsystem("odbcreg.exe \"MaxDB (Unicode)\" -r -p \"".$path."\\pgm\" -d sqlod32w.dll",$odbc_test,1);

	return 1;
}

sub unregisterUX{
	rename($web_ini,$web_ini.'.last');
	return 1;
}


*unregister =           $^O =~ /^MsWin/i ? \&unregisterWin :
        \&unregisterUX;


sub preuninstall{
	return 1;
}

sub postuninstall{
	return 1;	
}

1;
                                                                                                         
