<?php // ---------------------------------------------------------------------- // SHARED FUNCTIONS FOR INSTALLER AND BUILDER // ---------------------------------------------------------------------- function _h1($s): void { echo "\n>>>>>>>>>> $s\n"; } function _abort($sMessage, $iExitcode = 1): never { echo "❌ $sMessage.\n"; exit($iExitcode); } function _chdir($sDir): void { if (!is_dir($sDir)) { _abort("Directory '$sDir' not found."); } chdir($sDir); echo "dir # " . getcwd() . "\n"; } /** * Execute shell command and abort if it fails * @param mixed $cmd * @return void */ function _exec($cmd): void { echo "cmd > $cmd\n"; exec("$cmd 2>&1", $aOut, $rc); if(!count($aOut)) { $aOut=["-- no output --"]; } echo implode("\n", $aOut)."\n"; if ($rc != 0) { echo "rc=$rc "; _abort("Error: Command failed. Aborting.", $rc); } echo "✅ OK\n"; } function _mkdir(string $sMyDir): void { if (!is_dir($sMyDir)) { echo "DIR > '$sMyDir' "; if (!mkdir($sMyDir, 0755, true)) { _abort("ERROR: mkdir failed."); } echo "✅ OK\n\n"; } else { echo "⏩ SKIP mkdir: already exists: '$sMyDir'\n"; } }