// addtoqueue is a test helper which adds a queue item directly to the queue
// directory, behind chasquid's back.
//
// Note that chasquid does NOT support this, we do it before starting up the
// daemon for testing purposes only.
//
//go:build ignore
// +build ignore
package main
import (
"flag"
"fmt"
"io"
"os"
"time"
"blitiri.com.ar/go/chasquid/internal/queue"
)
var (
queueDir = flag.String("queue_dir", ".queue", "queue directory")
id = flag.String("id", "mid1234", "Message ID")
from = flag.String("from", "from", "Mail from")
rcpt = flag.String("rcpt", "rcpt", "Rcpt to")
)
func main() {
flag.Parse()
data, err := io.ReadAll(os.Stdin)
if err != nil {
fmt.Printf("error reading data: %v\n", err)
os.Exit(1)
}
item := &queue.Item{
Message: queue.Message{
ID: *id,
From: *from,
To: []string{*rcpt},
Rcpt: []*queue.Recipient{
{
Address: *rcpt,
Type: queue.Recipient_EMAIL,
Status: queue.Recipient_PENDING,
},
},
Data: data,
},
CreatedAt: time.Now(),
}
os.MkdirAll(*queueDir, 0700)
err = item.WriteTo(*queueDir)
if err != nil {
fmt.Printf("error writing item: %v\n", err)
os.Exit(1)
}
}