#  Hitachi SVP                               
#  Apache Install tool for Hitachi SVP
#       All Rights Reserved, Copyright (C) 2019,Hitachi, Ltd.
#
# History  :Version    :DATE        : Coder        : Patch No
# Hitachi SVP 
#          :01-00      :2016.09.26  : S.Moriya     : #14769
#          :01-01      :2016.05.29  : S.Moriya     : #76681
#
#

open(my $OUT,">> $ARGV[0]");				#ログ追加書き込みファイル

print $OUT "check_ApacheConf.pl start \n";		#書き込み



#カレントディレクトリの取得
use Cwd;

my $wd = Cwd::getcwd();
print $OUT "$wd \n";

#OSSメディア内のApache設定ファイル
my $OSS_httpd_conf = "$wd/conf/httpd.conf";
my $OSS_httpd_conf_ssl = "$wd/conf/httpd2_4.conf_ssl";
my $OSS_httpd_conf_ssl_p80b = "$wd/conf/httpd2_4.conf_ssl_p80b";
my $OSS_httpd_ssl_conf = "$wd/conf/httpd2_4-ssl.conf";
my $OSS_httpd_ssl_port80block_conf = "$wd/conf/httpd2_4-ssl_port80block.conf";
my $OSS_httpd_conf_ssl_hsts = "$wd/conf/httpd2_4.conf_ssl_hsts";
my $OSS_httpd_ssl_conf_ssl_p80b_hsts = "$wd/conf/httpd2_4.conf_ssl_p80b_hsts";
my $OSS_httpd_ssl_cac_conf = "$wd/conf/httpd2_4-ssl_cac.conf";
my $OSS_httpd_ssl_cac_hsts_conf = "$wd/conf/httpd2_4-ssl_cac_hsts.conf";
my $OSS_httpd_ssl_hsts_conf = "$wd/conf/httpd2_4-ssl_hsts.conf";
my $OSS_httpd_ssl_port80block_cac_conf = "$wd/conf/httpd2_4-ssl_port80block_cac.conf";
my $OSS_httpd_ssl_port80block_cac_hsts_conf = "$wd/conf/httpd2_4-ssl_port80block_cac_hsts.conf";
my $OSS_httpd_ssl_port80block_hsts_conf = "$wd/conf/httpd2_4-ssl_port80block_hsts.conf";

#SVP内のApache設定ファイル
my $DKC_httpd_conf = "C:/DKC200/san/conf/httpd.conf";
my $DKC_httpd_conf_ssl = "C:/DKC200/san/conf/httpd2_4.conf_ssl";
my $DKC_httpd_conf_ssl_p80b = "C:/DKC200/san/conf/httpd2_4.conf_ssl_p80b";
my $DKC_httpd_ssl_conf = "C:/DKC200/san/conf/httpd2_4-ssl.conf";
my $DKC_httpd_ssl_port80block_conf = "C:/DKC200/san/conf/httpd2_4-ssl_port80block.conf";
my $DKC_httpd_conf_ssl_hsts = "C:/DKC200/san/conf/httpd2_4.conf_ssl_hsts";
my $DKC_httpd_ssl_conf_ssl_p80b_hsts = "C:/DKC200/san/conf/httpd2_4.conf_ssl_p80b_hsts";
my $DKC_httpd_ssl_cac_conf = "C:/DKC200/san/conf/httpd2_4-ssl_cac.conf";
my $DKC_httpd_ssl_cac_hsts_conf = "C:/DKC200/san/conf/httpd2_4-ssl_cac_hsts.conf";
my $DKC_httpd_ssl_hsts_conf = "C:/DKC200/san/conf/httpd2_4-ssl_hsts.conf";
my $DKC_httpd_ssl_port80block_cac_conf = "C:/DKC200/san/conf/httpd2_4-ssl_port80block_cac.conf";
my $DKC_httpd_ssl_port80block_cac_hsts_conf = "C:/DKC200/san/conf/httpd2_4-ssl_port80block_cac_hsts.conf";
my $DKC_httpd_ssl_port80block_hsts_conf = "C:/DKC200/san/conf/httpd2_4-ssl_port80block_hsts.conf";

#open(my $IN,"< $ARGV[0]");		#読み込みファイル
my $OSSVERSION = "00.0";
my $DKCVERSION = "00.0";


#OSSのhttpd.confを読み込む#
#読み込みに失敗した場合はエラーとして処理を中断する#
unless(open(OSSFILE , "< $OSS_httpd_conf")){
    sleep 1;
    unless(open(OSSFILE , "< $OSS_httpd_conf")){
		sleep 1;
		unless(open(OSSFILE , "< $OSS_httpd_conf")){
	    	print $OUT "$OSS_httpd_conf:OSS httpd.conf File Open Error \n";
	    	return;
		}
    }
}
    
#一行ずつ読みこむ
while(<OSSFILE>)
{ 	
	if($. ==1 && /# httpd.conf\s+RSD Version (\d+\.\d+) for Apache2.4(\.\d+)* ssl(.*)/){		
		$OSSVERSION = $1;
		print $OUT "OSS RSDver:$OSSVERSION \n";		#書き込み
	}
} 	
close(OSSFILE);

#SVPのhttpd.confを読み込む#
#読み込みに失敗した場合はエラーとして処理を中断する#
unless(open(DKCFILE , "< $DKC_httpd_conf")){
    sleep 1;
    unless(open(DKCFILE , "< $DKC_httpd_conf")){
		sleep 1;
		unless(open(DKCFILE , "< $DKC_httpd_conf")){
	    	print $OUT "$DKC_httpd_conf:SVP httpd.conf File Open Error \n";
	    	return;
		}
    }
}
    
while(<DKCFILE>)
{ 	
	if($. ==1 && /# httpd.conf\s+RSD Version (\d+\.\d+) for Apache2.4(\.\d+)* ssl(.*)/){
		
		$DKCVERSION = $1;
		print $OUT "SVP RSDver:$DKCVERSION \n";		#書き込み
	}
}

close(DKCFILE);


if($OSSVERSION == "00.0"){ 
print $OUT "OSS httpd.conf version Error \n";
return;
}

if($DKCVERSION == "00.0"){
print $OUT "SVP httpd.conf version Error \n";
return;
}


#OSSメディア内のRSDver>SVP内のRSDverの場合、OSSメディア内のApache設定ファイルをSVPにコピー
if($OSSVERSION > $DKCVERSION){
 	use File::Copy;
 	print $OUT "copy start \n";
  	copy($OSS_httpd_conf, $DKC_httpd_conf);
  	copy($OSS_httpd_conf_ssl, $DKC_httpd_conf_ssl);
  	copy($OSS_httpd_conf_ssl_p80b, $DKC_httpd_conf_ssl_p80b);
  	copy($OSS_httpd_ssl_conf, $DKC_httpd_ssl_conf);
  	copy($OSS_httpd_ssl_port80block_conf, $DKC_httpd_ssl_port80block_conf);
  	copy($OSS_httpd_ssl_conf_ssl_p80b_hsts, $DKC_httpd_ssl_conf_ssl_p80b_hsts);
  	copy($OSS_httpd_conf_ssl_hsts, $DKC_httpd_conf_ssl_hsts);
  	copy($OSS_httpd_ssl_cac_conf, $DKC_httpd_ssl_cac_conf);
  	copy($OSS_httpd_ssl_cac_hsts_conf, $DKC_httpd_ssl_cac_hsts_conf);
  	copy($OSS_httpd_ssl_hsts_conf, $DKC_httpd_ssl_hsts_conf);
  	copy($OSS_httpd_ssl_port80block_cac_conf, $DKC_httpd_ssl_port80block_cac_conf);
  	copy($OSS_httpd_ssl_port80block_cac_hsts_conf, $DKC_httpd_ssl_port80block_cac_hsts_conf);
  	copy($OSS_httpd_ssl_port80block_hsts_conf, $DKC_httpd_ssl_port80block_hsts_conf);
  	
  	print $OUT "copy end \n";
}

print $OUT "check_ApacheConf.pl end \n";		#書き込み


close($OUT);