]> git.madduck.net Git - etc/mailfilter.git/blobdiff - procmail/msgid-index

madduck's git repository

Every one of the projects in this repository is available at the canonical URL git://git.madduck.net/madduck/pub/<projectpath> — see each project's metadata for the exact URL.

All patches and comments are welcome. Please squash your changes to logical commits before using git-format-patch and git-send-email to patches@git.madduck.net. If you'd read over the Git project's submission guidelines and adhered to them, I'd be especially grateful.

SSH access, as well as push access can be individually arranged.

If you use my repositories frequently, consider adding the following snippet to ~/.gitconfig and using the third clone URL listed for each project:

[url "git://git.madduck.net/madduck/"]
  insteadOf = madduck:

add script to release delayed messages
[etc/mailfilter.git] / procmail / msgid-index
index b7f210960ecdb5d45ce3108efde16324319379dc..caccf830e28f34e44c1788b40339d06485e9c369 100644 (file)
@@ -1,27 +1,24 @@
-# create table logfiles (sender text not null, recipient text not null,
-# subject text not null, msgid text unique not null, filename text primary key
-# not null unique, timestamp timestamp with time zone);
+# create table messages (sender text not null, recipient text not null,
+# subject text not null, msgid text not null, filename text primary key
+# not null unique, timestamp integer, dest text not null);
 #
 #
-# create trigger insert_logfiles_timestamp after insert on logfiles begin
-# update logfiles set timestamp = datetime('now') where filename
+# create trigger insert_messages_timestamp after insert on messages begin
+# update messages set timestamp = strftime('%s', 'now') where filename
 # = new.filename; end;
 
 # = new.filename; end;
 
-SQLITE=/usr/bin/sqlite3
 MSGID_INDEX_DB=$PMVAR/msgid-index.sqlite
 
 DO_QUERY="$SQLITE $MSGID_INDEX_DB"
 
 MSGID_INDEX_DB=$PMVAR/msgid-index.sqlite
 
 DO_QUERY="$SQLITE $MSGID_INDEX_DB"
 
-SQ="'\\''"
-SQE="'\\\''"
-FIELDS="$FROM$NL$ORIGINAL_TO$NL$SUBJECT$NL$MSGID"
-QUERY="insert into logfiles (sender, recipient, subject, msgid, filename) values (
-  `echo \"$FIELDS\" | sed -e 's,'\'','$SQE$SQE',g; s/^.*$/'\$SQE'&'\$SQE',/'`
-  $SQ$THISLOGFILE_REL$SQ)"
-TRAP="$TRAP; $DO_QUERY '$QUERY'"
+DATA="$FROM,$NL$ORIGINAL_TO,$NL$SUBJECT,$NL$MSGID"
+INCLUDERC=$PMDIR/sql-escape
+
+QUERY="insert into messages (sender, recipient, subject, msgid, filename, dest) values (
+  $DATA, '$THISLOGFILE_REL', '\$DESTFILE');"
+TRAP="$TRAP; OUT=\"$(echo \"$QUERY\" | $DO_QUERY 2>&1)\";
+      [ -n \"\$OUT\" ] && echo \"msgid-index: failed to insert reference into database: \$OUT\""
 
 QUERY
 
 QUERY
-FIELDS
-SQE
-SQ
+DATA
 DO_QUERY
 MSGID_INDEX_DB
 DO_QUERY
 MSGID_INDEX_DB