#!/bin/sh

set -e

TMP_PHP_SCRIPT=/tmp/sb_getkey.php
TMP_PKP_CHILD=/tmp/php_child.php

trap "rm -f $TMP_PHP_SCRIPT $TMP_PKP_CHILD" EXIT

cat > $TMP_PKP_CHILD << 'EOF'
<?php
	class Tmp_Pkp13 extends SB_Pkp13 {
		public function getPassword() { return $this->_getPassword(); } 
		public function getLogin() { return $this->_getLogin(); } 
	}

EOF


cat > $TMP_PHP_SCRIPT << 'EOF'
<?php

if($argc < 3) {
  echo "No enough arguments\n";
  exit();
}

$sb_path = $argv[1];
$version = $argv[2];
echo "Key Info v1.0\n";

if($version{0} == '3' || $version{0} == '4') {
  if(!extension_loaded('sitebuilder3')) {
	echo "No sitebuilder3 core\n";
	exit();
  }
	
  require_once($sb_path.'/htdocs/init.php');
  require_once('SB/autoload.php');
  require_once('/tmp/php_child.php');

  $license = new sb_license('');
  Base_Registry::put('license', $license);
  SB_Key::loadActiveKey();

  $pkp13 = new Tmp_Pkp13();
  echo $pkp13->getLogin() . "\n"; //[ka_product_login]
  echo $pkp13->getPassword() . "\n"; //[ka_product_password]
  echo Base_Pkp13::getDefaultServerUrl()."\n"; //[ka_url]
  echo $license->getProperty('key-number')."\n"; //[key_number]
  echo $license->getProperty('update_password')."\n"; //[key_update_password]

} else if($version{0} == '2') {
  require_once($sb_path.'/include/consts.inc');
  require_once($sb_path.'/include/kernel/licensekey.php');
  $key = $oLicenseKey->SB_GetKey();
  if(!is_array($key) || (is_array($key) && sizeof($key) == 0)) {
	echo "Unable to get key information";
	exit;	
  }
  echo "SiteBuilderLogin\n";
  echo "yH86i0LjWE70n3Lehf1bvTyzQ5t09oVu\n";
  echo "https://ka.swsoft.com:5224\n";
  echo $key['key_number']."\n";
  echo $key['update_password']."\n";
} else {
  echo "Unknown version\n";
}

?>
EOF


if [ -d /usr/local/sitebuilder ] && [ -f /usr/local/sitebuilder/.version ]; then
	SITEBUILDER_PATH="/usr/local/sitebuilder"
elif  [ -d /opt/sitebuilder ] && [ -f /opt/sitebuilder/.version ]; then
	SITEBUILDER_PATH="/opt/sitebuilder"
else
	echo "SiteBuilder not found"
	exit 1
fi

sb_version=`cat ${SITEBUILDER_PATH}/.version`

if [ -z "$sb_version" ]; then
  echo "SiteBuilder not found"
  exit 3
fi

major_sb_version=`echo $sb_version | cut -d. -f1` 

PHPCLI_PATHS="/usr/local/sitebuilder/bin/php \
	 /opt/php52/bin/php5 \
	 /opt/php51/bin/php5 \
	 /opt/php5/bin/php \
	 /usr/bin/php5 \
	 /usr/bin/php \
	 /usr/local/bin/php"
phpcli_path=

for path in  $PHPCLI_PATHS; do
  if [ -x $path ]; then
	php_ver=`echo "<?php echo phpversion(); ?>" | $path -q 2>/dev/null | awk -F. '{print \$1\$2}'`;
	if [ "$major_sb_version" = "3" ] || [ "$major_sb_version" = "4" ]; then
		($path -m 2>&1 | grep -q sitebuilder3 > /dev/null 2>&1) || continue;
	elif [ "$major_sb_version" = "2" ]; then
		($path -m 2>&1 | grep -q -e 'sitebuilder$' > /dev/null 2>&1) || continue;
	else 
		continue;
	fi  
	phpcli_path=$path
	break;
  fi
done								

if [ -z $phpcli_path ]; then
  echo "No PHP for this version of SiteBuilder was found"
  exit 2
fi

if $phpcli_path -v 2>/dev/null | grep -q '(cgi)'; then
	$phpcli_path $TMP_PHP_SCRIPT $SITEBUILDER_PATH $sb_version 2>/dev/null | tail -6
else
	$phpcli_path $TMP_PHP_SCRIPT $SITEBUILDER_PATH $sb_version 2>/dev/null
fi

rm -f $TMP_PHP_SCRIPT $TMP_PKP_CHILD

exit 0

