Platon Technologies
neprihlásený Prihlásiť Registrácia
SlovakEnglish
open source software development oslavujeme 10 rokov vývoja otvoreného softvéru! Streda, 21. máj 2025

Súbor: [Platon] / scripts / shell / mail2file / mail2file.sh (stiahnutie)

Revízia 1.3, Tue Feb 12 00:34:26 2002 UTC (23 years, 3 months ago) by jombik9


Zmeny od 1.2: +3 -4 [lines]

Sync.
New shell scripts.
CVS tags inprovements.
Extended pipelining merging and code stabilization.

#!/bin/bash
#use strict;
# huh, toto nie je Perl?! a jak mam potom hekovat bez Perlu, ha? :)

# mail2file.sh - bash-ovsky script pouzivajuci Perl
#
# $Id: mail2file.sh,v 1.3 2002/02/12 00:34:26 jombik9 Exp $
#
# Skript ocakava na vstupe e-mailovu spravu a ulozi ju do suboru, ktory
# bude mat tvar 'YY-MM-DD.[hh:mm:ss]'. Teda napriklad: 01-01-27.[22:21:30]
# Nazov suboru (datum) sa nastavuje podla hlavicky 'Date:' e-mailovej spravy.
#
# Optimalne pouzitie je s programom formail: 
#        cat mailbox | formail -s ./mail2file.sh
# Po tomto budete mat v aktualnom adresari za kazdy jeden e-mail z mailbox-u
# jeden subor, ktoreho obsahom bude prave ten mail a nazov bude zodpovedat
# sekcii 'Date:' toho e-mailu.
#
# (c) 2001-2002 Ondrej Jombik <nepto@pobox.sk>
# Especially dedicated to my love, Yuyanka. :)
#
# Updates:
# 29/01/2001 - initial release
# 03/02/2002 - import to CVS

# Prefix for temporary filename(s).
tmpfname="tmp-mail2file-X";

##############################################################################

# Creating the unique filename for temporaring storage.  
while [ -e $tmpfname ]; do
  tmpfname=$tmpfname"x";
done;

# Writing everythig to temporary file.
tee $tmpfname > /dev/null;

newfname=`cat $tmpfname | egrep '^Date: .+' | \
perl -e ' \
    while (<STDIN>) { \
        s/^Date:([ ].+,|)[ ](\d+)[ ]([^ ]+)[ ](\d+)[ ](\d+):(\d+):(\d+)[ ].*$/\
            $4-$3-0$2.[$5:$6:$7]/; \
        s/^[ \t]*\d*(\d\d[-][^ ]+[-])\d*(\d\d\..+)$/$1$2/; \
        s/^(\d+)-Jan-(.+)$/$1-01-$2/; \
        s/^(\d+)-Feb-(.+)$/$1-02-$2/; \
        s/^(\d+)-Mar-(.+)$/$1-03-$2/; \
        s/^(\d+)-Apr-(.+)$/$1-04-$2/; \
        s/^(\d+)-May-(.+)$/$1-05-$2/; \
        s/^(\d+)-Jun-(.+)$/$1-06-$2/; \
        s/^(\d+)-Jul-(.+)$/$1-07-$2/; \
        s/^(\d+)-Aug-(.+)$/$1-08-$2/; \
        s/^(\d+)-Sep-(.+)$/$1-09-$2/; \
        s/^(\d+)-Oct-(.+)$/$1-10-$2/; \
        s/^(\d+)-Nov-(.+)$/$1-11-$2/; \
        s/^(\d+)-Dec-(.+)$/$1-12-$2/; \
        if ($_ ne "") { \
            print $_; \
            last; \
        } \
    } \
    while(<STDIN>) { } \
'`;

if [ -z $newfname ]; then
    echo "WARNING: No 'Date:' section found. Leaving mail in temporary file.";
else
    while [ -e $newfname ]; do
          newfname=$newfname"x";
    done;

    echo "Creating '$newfname'.";
    mv $tmpfname $newfname;
fi


Platon Group <platon@platon.sk> http://platon.sk/
Copyright © 2002-2006 Platon Group
Stránka používa redakčný systém Metafox
Na začiatok