🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.perl
5 messages
5 total messages Started by Artur Czechowski Mon, 11 Aug 1997 17:31
Zakolejkowanie newsów
#501
Author: Artur Czechowski
Date: Mon, 11 Aug 1997 17:31
49 lines
2056 bytes
Hej
To i ja się pochwalę. Miałem popsuty odbiór feedu UUCP i wszystkie
newsy ładnie wysyłane ode mnie po tamtej stronie ślicznie szły sobie
do /dev/null. Odbiór newsów naprawiłem, ale trzebaby jakoś wysłać te newsy.
Oto jak to zrobiłem:

=============================================================================
#!/usr/bin/perl

eval 'exec perl -S $0 ${1+"$@"}'
	if $running_under_some_shell;

require "find.pl";

open WYJSCIE,">wyjscie";

# Traverse desired filesystems

&find('/var/spool/news/pl','/var/spool/news/bofh','/var/spool/news/control','/var/spool/news/icl');

exit;

sub wanted {
    (($dev,$ino,$mode,$nlink,$uid,$gid) = lstat($_)) &&
    -f _ &&
    do {
      $size=int(-s _);
      open NEWS,$name;
      $path="xxx";                       #########
      while($path !~ /^Path/) {          #########
        $path=<NEWS>;                    #########
      }                                  #########
      if ($path !~ /uucp-gw\.cyf\.gov\.pl/ ) {
        print "$name $size\n";
        print WYJSCIE "$name $size\n";
      }
      close NEWS;
    }
}

close WYJSCIE;
=============================================================================

Szkielet skryptu stworzyłem używając narzędzia find2perl - bardzo wygodne :)
Przy okazjii pytanie: jak inaczej napisać fragment zaznaczony przez ########?

Pozdrówka
-- 
Artur Czechowski <Czesiu@bofh.org.pl>
Re: Zakolejkowanie newsów
#502
Author: Piotr Piatkowski
Date: Tue, 12 Aug 1997 00:31
43 lines
2094 bytes
In pl.comp.lang.perl Artur Czechowski <Czesiu@bofh.org.pl> wrote:
: Hej
: To i ja się pochwalę. Miałem popsuty odbiór feedu UUCP i wszystkie
: newsy ładnie wysyłane ode mnie po tamtej stronie ślicznie szły sobie
: do /dev/null. Odbiór newsów naprawiłem, ale trzebaby jakoś wysłać te newsy.
: Oto jak to zrobiłem:

: =============================================================================
: #!/usr/bin/perl
...
:       $size=int(-s _);
:       open NEWS,$name;
:       $path="xxx";                       #########
:       while($path !~ /^Path/) {          #########
:         $path=<NEWS>;                    #########
:       }                                  #########
:       if ($path !~ /uucp-gw\.cyf\.gov\.pl/ ) {
:         print "$name $size\n";
:         print WYJSCIE "$name $size\n";
:       }
:       close NEWS;
...
: Szkielet skryptu stworzyłem używając narzędzia find2perl - bardzo wygodne :)
: Przy okazjii pytanie: jak inaczej napisać fragment zaznaczony przez ########?

Sam fragment to niespecjalnie jest jak skrócić, ale można cały 
zacytowany fragment zastąpić czymś takim:

$size = int ( -s _ );
open NEWS, $name 
  or die "open $name: $!";
while(<NEWS>) {
 if( /^Path:.*uucp-gw\.cyf\.gov\.pl/ ) {
     print "$name $size\n"; 
     print WYJSCIE "$name $size\n";
     last;
 }
}
close NEWS;


-- 
Piotr Piątkowski, Uczelniane Centrum Informatyki, AGH Krakow, POLAND
Re: Zakolejkowanie newsów
#503
Author: Artur Czechowski
Date: Tue, 12 Aug 1997 10:49
24 lines
1336 bytes
In pl.comp.lang.perl Piotr Piatkowski <kompas@galaxy.uci.agh.edu.pl> wrote:
PP>$size = int ( -s _ );
PP>open NEWS, $name 
PP>  or die "open $name: $!";
PP>while(<NEWS>) {
PP> if( /^Path:.*uucp-gw\.cyf\.gov\.pl/ ) {
PP>     print "$name $size\n"; 
PP>     print WYJSCIE "$name $size\n";
PP>     last;
PP> }
PP>}
PP>close NEWS;

Hmm... To niezupełnie tak...
1. Szukam Path:
2. Jeżeli w Path: NIE występuje ciąg znaków uucp-gw.cyf.gov.pl, to wtedy
trzeba wypisać odpowiedni string na wyjściu. 
3. Przechodzę do następnego artykułu.

A to powyżej działa trochę inaczej...

Pozdrówka
-- 
Artur Czechowski <Czesiu@bofh.org.pl>
Re: Zakolejkowanie newsów
#504
Author: Piotr Piatkowski
Date: Tue, 12 Aug 1997 13:16
29 lines
1505 bytes
Artur Czechowski <Czesiu@bofh.org.pl> wrote:
: In pl.comp.lang.perl Piotr Piatkowski <kompas@galaxy.uci.agh.edu.pl> wrote:
: PP>$size = int ( -s _ );
: PP>open NEWS, $name 
: PP>  or die "open $name: $!";
: PP>while(<NEWS>) {
: PP> if( /^Path:.*uucp-gw\.cyf\.gov\.pl/ ) {
: PP>     print "$name $size\n"; 
: PP>     print WYJSCIE "$name $size\n";
: PP>     last;
: PP> }
: PP>}
: PP>close NEWS;

: Hmm... To niezupełnie tak...
: 1. Szukam Path:
: 2. Jeżeli w Path: NIE występuje ciąg znaków uucp-gw.cyf.gov.pl, to wtedy
: trzeba wypisać odpowiedni string na wyjściu. 
: 3. Przechodzę do następnego artykułu.

A jaki problem?  

if( /^Path:/ ) { 
 print "$name $size\n" unless /uucp-gw\.cyf\.gof\.pl/;
 last;
}

-- 
Piotr Piątkowski, Uczelniane Centrum Informatyki, AGH Krakow, POLAND
Re: Zakolejkowanie newsów
#505
Author: Artur Czechowski
Date: Tue, 12 Aug 1997 14:39
8 lines
1033 bytes
In pl.news.admin Tomasz R. Surmacz <tsurmacz@spamfilter.ict.pwr.wroc.pl> wrote:
o> man newsrequeue
Tia... to też może być :)
Tyle tylko, że to jest rozwiązanie nadmiarowe.

Ale dalej będę się upierał, że mój szkielet jest bardziej rozwojowy :).
-- 
Artur Czechowski <Czesiu@bofh.org.pl>
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads