diff --git a/install_minimal/airtime-install b/install_minimal/airtime-install index 6d459c567..9b7746692 100755 --- a/install_minimal/airtime-install +++ b/install_minimal/airtime-install @@ -7,6 +7,8 @@ if [ `whoami` != 'root' ]; then exit 1 fi +export AIRTIME_INSTALL_DEBUG=1 + set +e DEB=$(dpkg -s airtime 2> /dev/null | grep Status) set -e @@ -22,7 +24,14 @@ SCRIPTPATH=`dirname $SCRIPT` AIRTIMEROOT=$SCRIPTPATH/../ # Check if airtime exists already +set +e php --php-ini ${SCRIPTPATH}/airtime-php.ini ${SCRIPTPATH}/include/airtime-installed-check.php $@ +result=$? +set -e + +if [ "$result" = "2" -o "$result" = "3" ]; then + exit 1 +fi echo -e "\n******************************** Install Begin *********************************" @@ -30,6 +39,11 @@ rm -rf "/usr/lib/airtime" $AIRTIMEROOT/python_apps/python-virtualenv/virtualenv-install.sh python $AIRTIMEROOT/python_apps/create-pypo-user.py +if [ "$result" = "1" ]; then + #do upgrade + php --php-ini ${SCRIPTPATH}/airtime-php.ini ${SCRIPTPATH}/include/airtime-upgrade.php $@ +fi + $SCRIPTPATH/include/airtime-copy-files.sh $SCRIPTPATH/include/airtime-initialize.sh $@ diff --git a/install_minimal/include/airtime-install.php b/install_minimal/include/airtime-install.php index 30df10a4e..1f7a9ea33 100644 --- a/install_minimal/include/airtime-install.php +++ b/install_minimal/include/airtime-install.php @@ -19,12 +19,14 @@ if ($opts == NULL) { $version = AirtimeInstall::GetVersionInstalled(); // A previous version exists - if so, upgrade. +/* if (isset($version) && ($version != false) && ($version < AIRTIME_VERSION) && !isset($opts->r)) { echo "Airtime version $version found.".PHP_EOL; require_once("airtime-upgrade.php"); exit(0); } +* */ // ------------------------------------------------------------------------- // The only way we get here is if we are doing a new install or a reinstall. diff --git a/install_minimal/include/airtime-installed-check.php b/install_minimal/include/airtime-installed-check.php index bc1264dcd..ae2707467 100644 --- a/install_minimal/include/airtime-installed-check.php +++ b/install_minimal/include/airtime-installed-check.php @@ -7,6 +7,11 @@ * Checks if a current version of Airtime is installed. * If so, the user is presented with the help menu and can * choose -r to reinstall. + * + * Returns 0 if Airtime is not installed + * Returns 1 if a previous version of Airtime installed + * Returns 2 if the same version of Airtime is installed + * Returns 3 if a version of Airtime that we can't upgrade from is installed. */ require_once(dirname(__FILE__).'/AirtimeInstall.php'); require_once(__DIR__.'/airtime-constants.php'); @@ -15,24 +20,32 @@ AirtimeInstall::ExitIfNotRoot(); $opts = AirtimeInstall::getOpts(); if ($opts == NULL) { - exit(1); + exit(2); } if (isset($opts->h)) { AirtimeInstall::printUsage($opts); - exit(1); + exit(2); } $version = AirtimeInstall::GetVersionInstalled(); // The current version is already installed. -if (isset($version) && ($version != false) && ($version == AIRTIME_VERSION) && !isset($opts->r)) { - echo "Airtime $version is already installed.".PHP_EOL; - AirtimeInstall::printUsage($opts); - exit(1); +echo "* Checking for existing install of Airtime...".PHP_EOL; +if (isset($version) && ($version != false)){ + if (($version == AIRTIME_VERSION) && !isset($opts->r)) { + echo "Airtime $version is already installed.".PHP_EOL; + AirtimeInstall::printUsage($opts); + exit(2); + } else if (strcmp($version, AIRTIME_VERSION) < 0){ + echo " * Found previous version: $version".PHP_EOL; + exit(1); + } +} else { + echo " * Not Found".PHP_EOL; } if($version === false){ echo "A version of Airtime older than 1.7.0 detected, please upgrade to 1.7.0 first.\n"; echo "You will then be able to upgrade to 1.9.0 using this installer.\n"; exit(3); -} \ No newline at end of file +} diff --git a/install_minimal/include/airtime-upgrade.php b/install_minimal/include/airtime-upgrade.php index b7237e2a6..144fec2c1 100644 --- a/install_minimal/include/airtime-upgrade.php +++ b/install_minimal/include/airtime-upgrade.php @@ -19,6 +19,14 @@ if(exec("whoami") != "root"){ exit(1); } +function pause(){ + /* change "AIRTIME_INSTALL_DEBUG=1" in base install file to enable this. */ + if (getenv("AIRTIME_INSTALL_DEBUG") === "1"){ + echo "Press Enter to Continue".PHP_EOL; + fgets(STDIN); + } +} + const CONF_FILE_AIRTIME = "/etc/airtime/airtime.conf"; @@ -58,33 +66,43 @@ $SCRIPTPATH = __DIR__; if (strcmp($version, "1.7.0") < 0){ passthru("php --php-ini $SCRIPTPATH/../airtime-php.ini $SCRIPTPATH/../upgrades/airtime-1.7.0/airtime-upgrade.php"); + pause(); } if (strcmp($version, "1.8.0") < 0){ passthru("php --php-ini $SCRIPTPATH/../airtime-php.ini $SCRIPTPATH/../upgrades/airtime-1.8.0/airtime-upgrade.php"); + pause(); } if (strcmp($version, "1.8.1") < 0){ passthru("php --php-ini $SCRIPTPATH/../airtime-php.ini $SCRIPTPATH/../upgrades/airtime-1.8.1/airtime-upgrade.php"); + pause(); } if (strcmp($version, "1.8.2") < 0){ passthru("php --php-ini $SCRIPTPATH/../airtime-php.ini $SCRIPTPATH/../upgrades/airtime-1.8.2/airtime-upgrade.php"); + pause(); } if (strcmp($version, "1.9.0") < 0){ passthru("php --php-ini $SCRIPTPATH/../airtime-php.ini $SCRIPTPATH/../upgrades/airtime-1.9.0/airtime-upgrade.php"); + pause(); } if (strcmp($version, "1.9.2") < 0){ passthru("php --php-ini $SCRIPTPATH/../airtime-php.ini $SCRIPTPATH/../upgrades/airtime-1.9.2/airtime-upgrade.php"); + pause(); } if (strcmp($version, "1.9.3") < 0){ passthru("php --php-ini $SCRIPTPATH/../airtime-php.ini $SCRIPTPATH/../upgrades/airtime-1.9.3/airtime-upgrade.php"); + pause(); } if (strcmp($version, "1.9.4") < 0){ passthru("php --php-ini $SCRIPTPATH/../airtime-php.ini $SCRIPTPATH/../upgrades/airtime-1.9.4/airtime-upgrade.php"); + pause(); } if (strcmp($version, "1.9.5") < 0){ passthru("php --php-ini $SCRIPTPATH/../airtime-php.ini $SCRIPTPATH/../upgrades/airtime-1.9.5/airtime-upgrade.php"); + pause(); } if (strcmp($version, "2.0.0") < 0){ system("php ".__DIR__."/../upgrades/airtime-2.0.0/airtime-upgrade.php"); + pause(); } //set the new version in the database.