janis
BOFH
Hallo,
nach langer Inaktivität hab ich mal wieder ein Problem.
Ich habe eine XML-Datei die eventuell eine Liste mit Dateien enthält, die in ein tar-Archiv gepackt werden sollen.
Hier mal die XML-Datei:
Folgendes bash Script habe ich bis jetzt:
Die aus der XML ausgelesenen Dateien müssten dann mit md5sum verarbeitet werden und dann in der vorletzten Zeile zu dem tgz Archiv hinzufügt werden.
Wie gehe ich das am besten an?
Kann ich in meiner while Schleife die Parameter überprüfen?
Weil dann könnte ich mir eine Dateiliste anlegen.
Aber nicht jedes <sql> Tag muss einen Dateinamen enthalten und es kann auch vorkommen, dass gar keine Dateien angegeben werden.
Ich hoffe ihr könnt mir helfen
MfG
Janis
nach langer Inaktivität hab ich mal wieder ein Problem.
Ich habe eine XML-Datei die eventuell eine Liste mit Dateien enthält, die in ein tar-Archiv gepackt werden sollen.
Hier mal die XML-Datei:
Code:
<?xml version="1.0"?>
<!DOCTYPE addon SYSTEM "http://path-to-dtd/addon.dtd">
<addon>
<name>test</name>
<version>2</version>
<caption>Test</caption>
<description>This is a tesplugin</description>
<author>Jan H</author>
<homepage>http://test.de</homepage>
<options>
<option var="10">menu</option>
<option var="123456789">pgp</option>
</options>
<dependencies>
</dependencies>
<preinstall>
<sql type="file">file1.sql</sql>
<sql type="file">datei2.sql</sql>
<sql type="command">CREATE TABLE `test` (`a` INT NOT NULL) ENGINE = MYISAM ;</sql>
</preinstall>
<postinstall></postinstall>
</addon>
Folgendes bash Script habe ich bis jetzt:
Code:
#! /bin/bash
function cleanup()
{
unlink md5sums.gpg>/dev/null 2>&1
unlink md5sums>/dev/null 2>&1
unlink data.tgz>/dev/null 2>&1
}
#Cleanup
trap cleanup EXIT SIGHUP SIGINT SIGQUIT SIGTERM
#Get Package Name
while IFS='<>' read _ starttag value endtag; do
case "$starttag" in
name) name+=("$value") ;;
esac
done < info.xml
echo $name
cleanup
unlink "$name.tar.gz">/dev/null 2>&1
#Zip Files
tar cfvz "data.tgz" "$name"
#Calculate MD5
md5sum "data.tgz" "info.xml">md5sums;
#Sign MD5sums
gpg --yes -s md5sums;
#Zip Package
if [ -f "md5sums.gpg" ];
then
tar cfvz "$name.tar.gz" "data.tgz" "md5sums.gpg" "info.xml"
fi
Wie gehe ich das am besten an?
Kann ich in meiner while Schleife die Parameter überprüfen?
Weil dann könnte ich mir eine Dateiliste anlegen.
Aber nicht jedes <sql> Tag muss einen Dateinamen enthalten und es kann auch vorkommen, dass gar keine Dateien angegeben werden.
Ich hoffe ihr könnt mir helfen
MfG
Janis