Das_Gnu
09-11-2002, 03:08
Ich habe noch nie ein "wirkliches" Shellscript erstellt ausser per Paste'nCopy
Soviel zu den Vorraussetzungen :confused:
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 (http://www.ioncube.com) 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
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 *
funktionierte bei mir, wenn ich es über
<?
exec("test.sh")
?>
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:
#! /bin/bash
#
# ERSTELLEN DER ENCODIERTEN VERSION
# EINES CVS-MODULS
# Variablen:
# /path/to/ioncube => Pfad zum Encoder (siehe www.ioncube.com)
# 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
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 :confused:
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 (http://www.ioncube.com) 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
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 *
funktionierte bei mir, wenn ich es über
<?
exec("test.sh")
?>
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:
#! /bin/bash
#
# ERSTELLEN DER ENCODIERTEN VERSION
# EINES CVS-MODULS
# Variablen:
# /path/to/ioncube => Pfad zum Encoder (siehe www.ioncube.com)
# 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
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