Ich bin gerade dabei, eine PHP-basierte Support-Oberfläche zu erstellen, die aus CVS die jeweils aktuellste Download-Version eines Programmes holt.
Dazu gebe ich auf Console zum Beispiel die Befehle
Code:
cd /web/httpd/htdocs/support/download
cvs -d /usr/cvs export -D 2002-10-26 Modulname
cd /web/httpd/htdocs/support/download/Modulname
tar cfz Modulname.tgz *
ein.
"2002-10-29" ist das aktuelle Tagesdatum, damit die neueste Version geladen wird,
"Modulname" ist der Name des Projektes.
Die exec() -, system() -, passthru - Funktionen funktionieren in diesem Fall (zumindest auf unserem Server) nicht mit dem cvs-Kommando, da sie nicht in die Unterverzeichnisse abtauchen - habe alles mögliche probiert.
Dagegen funktioniert zum Beispiel der Aufruf einer BASH-Datei mit obengenanntem Inhalt:
PHP-Code:
exec("export.sh")
hervorragend.
Jedoch sind "Modulname" und Datum (Schalter -D) Variablen, die der Besucher wählen soll. So ist statt zum Beispiel auch der Schalter
Code:
-r <versionsnummer>
möglich.
Das PHP ist kein Problem für mich, aber BASH.
Wie kann ich nun zum Beispiel die aus PHP übergebenen Parameter in dem BASH-Script auswerten, wenn ich die Variablen aus dem PHP-Script etwa in der Form übergebe
PHP-Code:
exec("export.sh --date=$date --modul=$modulname")
?
Leider habe ich noch nie ein Bash-Script selber konfiguriert oder geschrieben.
Lesezeichen