From 3663d7365bf8b1e91cccf367326a23acd7db0161 Mon Sep 17 00:00:00 2001 From: Alyssa Ross Date: Wed, 15 Apr 2020 11:23:47 +0000 Subject: [PATCH] msuck: don't init maildir until connected Previously, a typo in the newsgroup name would leave an empty mailbox for a non-existent newsgroup. This can be avoided by delaying maildir initialization until after the NNTP server has 221ed the group. --- contrib/msuck | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/contrib/msuck b/contrib/msuck index d75591f..4ba4464 100755 --- a/contrib/msuck +++ b/contrib/msuck @@ -57,10 +57,6 @@ STDOUT.sync = true ARGV.each { |group| - FileUtils.mkdir_p(File.join(dir, group, "cur")) - FileUtils.mkdir_p(File.join(dir, group, "new")) - FileUtils.mkdir_p(File.join(dir, group, "tmp")) - nntp.write("GROUP #{group}\r\n") msg = nntp.gets @@ -79,6 +75,10 @@ ARGV.each { |group| low = high - LIMIT + 1 if number > LIMIT - 1 low = 1 if low <= 0 + FileUtils.mkdir_p(File.join(dir, group, "cur")) + FileUtils.mkdir_p(File.join(dir, group, "new")) + FileUtils.mkdir_p(File.join(dir, group, "tmp")) + have = Dir.entries(File.join(dir, group, "cur")). map { |f| $1.to_i if f =~ /N=(\d+)/ }.compact