Ich habe noch nie ein "wirkliches" Shellscript erstellt ausser per Paste'nCopy
Soviel zu den Vorraussetzungen
Ich bin gerade dabei, eine PHP-basierte Support-Oberfläche zu erstellen, die aus CVS die jeweils aktuellste Download-Version eines Programmes holt, dieses mit . Ioncube Encoder verschlüsselt und anschließend gepackt in den Downloadbereich des Members ablegt.
Leider hakt es bei den PHP-Kommandozeilen-Befehlen etwas mit CVS und Ioncube, so dass ich über eine .sh-Datei arbeiten muss.
Folgendes test.sh
funktionierte bei mir, wenn ich es über
aufrufe. Auch mit dem IONCUBE-Befehl ...
Ausgangspunkt ist nun folgendes rudimentäres - mit vielen vom PHP-Script übergebenen Variablen, bei denen ich nicht weiss,
wie man sie im Shell-Script verabeiten kann.
modul_export.sh:
Kann jemand dieses Bash-Script für mich schreiben, so dass es meine Values aus dem PHP-Script übernimmt?
Als Gegenleistung biete ich an, dass derjenige seine PHP-Scripte mit IONCUBE für ein Jahr kostenlos bei uns verschlüsseln kann.
Vielen Dank
Guido
Soviel zu den Vorraussetzungen
Ich bin gerade dabei, eine PHP-basierte Support-Oberfläche zu erstellen, die aus CVS die jeweils aktuellste Download-Version eines Programmes holt, dieses mit . Ioncube Encoder verschlüsselt und anschließend gepackt in den Downloadbereich des Members ablegt.
Leider hakt es bei den PHP-Kommandozeilen-Befehlen etwas mit CVS und Ioncube, so dass ich über eine .sh-Datei arbeiten muss.
Folgendes test.sh
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 *
PHP-Code:
<?
exec("test.sh")
?>
Ausgangspunkt ist nun folgendes rudimentäres - mit vielen vom PHP-Script übergebenen Variablen, bei denen ich nicht weiss,
wie man sie im Shell-Script verabeiten kann.
modul_export.sh:
Code:
#! /bin/bash # # ERSTELLEN DER ENCODIERTEN VERSION # EINES CVS-MODULS # Variablen: # /path/to/ioncube => Pfad zum Encoder (siehe [url]www.ioncube.com[/url]) # modul => Name des CVS-Modules # today => Tagesdatum im Format 2002-10-26 # qverz => Pfad der exportierten Dateien # zverz => Encoder-Ziel-Pfad # WWW Download DIR => Zielverzeichnis der zum Download # bereitgestellten tgz- oder Zip-Datei # include => zusaetzlich zu encodierende Dateien und Verzeichnisse # exclude => nicht zu encodierende Dateien und Verzeichnisse # # erase-target => bestehendes Zielverz. loeschen # ODER rename-target => bestehendes Zielverz. umbenennen # ODER --merge-target => bestehendes Zielverz. updaten # # expire-on => Testversion arbeitet bis yyyy-mm-dd # ODER expire-in => Testversion laeuft d Tage ODER h Stunden. ODER m Minuten # # allowed-ip-addr => IP, auf der das programm laufen darf # ODER SUBNET # allowed-ip-addr=xxx.xxx.xxx.xxx # allowed-ip-mask=xxx.xxx.xxx.xxx # # ... cd <#/path/to#>/ioncube/src cvs -d /usr/cvs export -D <#today#> <#modul#> cd <#/path/to#>/ioncube # Folgender Code muss eigentlich in einer Zeile stehen # aber der Uebersicht halber mal mit Umbruechen ./ioncube/ioncube_encoder <#qverz#>/<#modul#> -o <#zverz#>/<#modul#> [--verbose] [--exclude=<BeispielVerz: <#/path/to#>/ioncube/src/template/>] [--include=<Beispielwert: <#/path/to#>/ioncube/src/template/*.inc>] [--exclude=<Beispielwert: <#/path/to#>/ioncube/src/datei.conf> ... # [ --include= ... UND --exclude= ... sind beliebig erweiterbar, # aber aus PHP uebergebene Reihenfolge muss stimmen] [ --erase-target ODER --rename-target ODER --merge-target ] [--expire-on=yyyy-mm-dd] [--expire-in=7d ODER 8h <d = Tage ODER h = Std. ODER m = Min.>] [--allowed-ip-addr=<192.168.1.12>] # ODER SUBNET [--allowed-ip-addr=<192.168.1.0> --allowed-ip-mask=<255.255.255.0>] [ --noch-ein-paar-args=<argument> ] [ --noch-ein-paar-vars ] ... cd <#zverz#>/<#modul#> tar cvfz <#WWW Download DIR#>/<#modul#>.tgz * done echo "OK" exit esac
Als Gegenleistung biete ich an, dass derjenige seine PHP-Scripte mit IONCUBE für ein Jahr kostenlos bei uns verschlüsseln kann.
Vielen Dank
Guido
Kommentar