summaryrefslogtreecommitdiff
path: root/newsrc-lg
diff options
context:
space:
mode:
authorian <ian>1999-11-09 21:13:14 +0000
committerian <ian>1999-11-09 21:13:14 +0000
commit45e019f41fc94ae17fd3001bb777f6adc4c3f08f (patch)
tree082aea2d6c830382d746633e29190d89eccd21fc /newsrc-lg
parent0e397d0be8cd0f6e57cb7b78dada83a30261fb73 (diff)
downloaduserv-utils-45e019f41fc94ae17fd3001bb777f6adc4c3f08f.tar.gz
As found on chiark in /usr/local/lib/news/feed+read/newsrc-listgroups
Diffstat (limited to 'newsrc-lg')
-rwxr-xr-xnewsrc-lg/newsrc-listgroups37
1 files changed, 37 insertions, 0 deletions
diff --git a/newsrc-lg/newsrc-listgroups b/newsrc-lg/newsrc-listgroups
new file mode 100755
index 0000000..73ad841
--- /dev/null
+++ b/newsrc-lg/newsrc-listgroups
@@ -0,0 +1,37 @@
+#!/usr/bin/perl
+
+$minreaddays= 21;
+$maxperuser= 250;
+
+open(CONF,"$ARGV[0]") or die $!;
+while(<CONF>) {
+ next if m/^\#/ || !m/^\S/;
+ next if m/^(myfqdn|xref|server|server-nosearch|fetch|read|post|permit|believe|extrarc)\s/;
+ if (m/^minreaddays\s+(\d+)\s+$/) {
+ $minreaddays= $1;
+ } elsif (m/^maxperuser\s+(\d+)\s+$/) {
+ $maxperuser= $1;
+ } else {
+ die "$_ ?";
+ }
+}
+
+$newsrc= ".newsrc";
+exit 0 if -l $newsrc || ! -f _ || -M _ > $minreaddays;
+
+@g= ();
+
+open NEWSRC, $newsrc or die $!;
+while (<NEWSRC>) {
+ next unless s/:.*\n$//;
+ next unless m/^[-a-z0-9+]+\.[-a-z0-9+._]+$/i;
+ push @g, "$_\n";
+}
+close NEWSRC or die $!;
+
+exit 0 if @g > $maxperuser;
+
+print sort @g or die $!;
+close STDOUT or die $!;
+
+exit 0;