<?php
$message = __File__." Zeile ".__line__." startet";
error_log($message);
$my_task->add_message($message);

// Log-Eintrag zum Testen (zu finden in der debug.log von WP)
error_log('create_index_json wurde aufgerufen');

function create_index(){
    $message = __file__." Zeile: ".__line__." Das Plugin mirror simply wurde geladen!";
    error_log($message);
    $my_task->add_message($message);
    
    $pfad_aktuell = getcwd();
    $message = __file__." Zeile: ".__line__." pfad_aktuell = ".$pfad_aktuell;
    error_log($message);
    $my_task->add_message($message);

    $script_path = '../indexer.sh';
    $message = __file__." Zeile: ".__line__." sript_path = ".$script_path;
    error_log($message);
    $my_task->add_message($message);
   

    /*
    error_log("sript_path = ".$script_path);
    foreach (scandir("../") as $file) {
      if ($file === ".." or $file === ".") continue;

	    error_log(__file__." Zeile: ".__line__."$file\n");
    }
    */

    if (file_exists($script_path)) {
	$message = __file__." Zeile: ".__line__." aufgerufen durch: ".$_SERVER['SCRIPT_NAME'];
	error_log($message);
	$my_task->add_message($message);

	// ' > /dev/null 2>&1 &' lässt das Script im Hintergrund laufen,
	// damit WordPress nicht auf das Ende von rsync warten muss.
	//shell_exec("$script_path > /dev/null 2>&1 &");
	// Schreibt Standard-Ausgabe und Fehler in ./sync.log
	//shell_exec("$script_path >> ./sync.log 2>&1 &");

	//exec() bietet bessere Kontrolle
	$script_output = [];
	$script_result = -1;
	//exec($script_path." 2>&1", $script_output, $script_result);
	exec($script_path." ./sync.log >&1", $script_output, $script_result);
	if ($script_result === 0) {
		$message = __file__." Zeile: ".__line__." Das Skript wurde erfolgreich ausgeführt.";
		error_log($message);
		$my_task->add_message($message);
	}
	else
	{
		$message = __file__." Zeile: ".__line__." Fehler ! Rückgabecode : ".$script_result;
		error_log($message);
		$my_task->add_message($message);
	}
	$erg = " Ergebnis der Batchdatei:\n";
	foreach ($script_output as $zeile =>  $value){
		$erg .= "[info] ".$value."\n";
	}

	$message = __file__." Zeile: ".__line__." ".$erg;
	error_log($message);
	$my_task->add_message($message);

    }
    else
    {
	$message = __file__." Zeile: ".__line__." Das Skript wurde nicht gefunden.";
	error_log($message);
	$my_task->add_message($message);

    }
    return(-1);
}

