aMule Forum

Please login or register.

Login with username, password and session length
Advanced search  

News:

We're back! (IN POG FORM)

Author Topic: amulecmd + perl  (Read 2692 times)

Iron Maiden

  • Newbie
  • Karma: 0
  • Offline Offline
  • Posts: 4
amulecmd + perl
« on: March 18, 2004, 08:42:02 PM »

Tach zusammen,

ich würde gerne mit nem perlscript amulecmd ansprechen und seine Ausgaben weiter verwerten. Das Problem is, das ich amulecmd zwar starten kann, es aber weitere Eingaben will, zb Show DL. Das Ganze sollte irgendwie so aussehen

my @ausgabe = `amulecmd --ShowDL`;
(das tut natürlich nich, soll nur zeigen was ich haben will)

Auf jeden Fall so das ich am Schluss eine Variable hab die die Ausgabe von amulecmd enthält. Also mehr oder weniger das was ich sehe, wenn ich $amulecmd $Show DL $exit eintippe.

cu & thx
Logged
He, that will not when he may,
when he would he shall have nay.

http://www.againsttcpa.com/

deltaHF

  • Evil Admin
  • Former Developer
  • Hero Member
  • *****
  • Karma: 6
  • Offline Offline
  • Posts: 3920
  • .. Legends may sleep, but they never die ..
    • http://www.amule.org
Re: amulecmd + perl
« Reply #1 on: March 19, 2004, 11:18:38 PM »

ich schau mal nach nem perl experten

gruss

bootstrap

  • Guest
Re: amulecmd + perl
« Reply #2 on: March 20, 2004, 06:35:17 PM »

Holla!

Probier's mal mit
Code: [Select]
perldoc -f system
Logged

Iron Maiden

  • Newbie
  • Karma: 0
  • Offline Offline
  • Posts: 4
re
« Reply #3 on: March 21, 2004, 12:30:33 PM »

Hmm ich denk des is nich des was ich brauch, gut ich hab mich auch bissel undeutlich ausgedrückt, das @ausgabe = `amulecmd --ShowDL`; Beispiel war blöd....

also mal n hoffentlich besseres Beispiel:

scirpt 1, stellvertretend für amulecmd:
Code: [Select]
while($eingabe ne "exit"){

           print "amulecmd$";
           my $eingabe = ;

           if($eingabe eq "Show DL"){

                      print "datei1.zip 50%";
                      print "datei2.zip 30%";
           }
}

Das soll das Verhalten von amulecmd demonstrieren. Nachdem mans gestartet hat, wills ne Eingabe haben, von der die Ausgabe abhängt. Alos zb. tippt man Show DL ein, zeigts die aktuellen dls an, gibt man stats ein, zeigts irgedwelche infos an... Man kann die Ausgaben NICHT über flags steuern (soweit ich weis).

scirpt 2, soll script 1[amulecmd] benutzen und seine Ausgaben weiterverwerten. Dazu muss es script 1 starten, sein mit Show DL und anschließend mit exit füttern, und seine Ausgaben schön in ein @ auffangen.
Code: [Select]
@ausgabe = `script1`;   #amulecmd
#print "Show DL" in die Eingabe von script 1
#print "exit" in die Eingabe von script 1

script 2 soll also während `script1` ausgeführt wird Show DL und exit an die Eingabe von 1 schicken und die Antworten in @ausgabe sammeln.

Ich hoff mal das mein Problem jetz klar ist :D Es kann auch sein das das nicht möglich is, ich weis es nicht...

cu & thx
Logged
He, that will not when he may,
when he would he shall have nay.

http://www.againsttcpa.com/

bootstrap

  • Guest
RE: re
« Reply #4 on: March 21, 2004, 07:42:46 PM »

Ich sehe worauf es dir ankommt...

Normalerweise kannst du mit
Code: [Select]
my @val = `/bin/echo bla foo pizza` ein Array @val mit dem Inhalt 'blah foo pizza' erzeugen. Das sollte mit allen möglichen Programmen funktionieren die Output generieren.
Das Problem in diesem Fall scheint mir eher die Datenübergabe an amulecmd zu sein, da amulecmd die "Daten" nicht übergeben bekommen möchte, sondern als Eingabe nach dem Start.
Ein Beispiel in bash:
Code: [Select]
echo << EOF
bla
foo
pizza
EOF
gibt bla foo pizza aus.
Aaaaber - ich hab keine Ahnung wie ich an der Passwort Abfrage von amulecmd vorbei komme.
Womit ich in Perl also keinen Schimmer habe ich wie ich nach dem Start des externen Programms Daten weitegeben kann und ebenso wenig Ahnung wie ich per shell script ein \n an amulecmd schicke.
Aber ich bin ziemlich sicher dass es irgendwie geht :)
Logged