вспомнить все два

15:17 | 11-04-2006 | HOWTO, Internet, Software | No Comments

продолжая про историю и поиск, надо добавить вот что: один из плюсов server-based IM заключается как раз в хранении history на этом самом сервере и оттого в продолжении разговора без заглядывания куда-либо или глупого “напомни, о чем это я тебе говорил?”. заменяя же содержимое на пустоту, мы как раз историю и удаляем, а это плохо, конечно — и если в irssi последствия еще не так очевидны (поскольку лог и буфер между собой не связаны), то в centericq аналогичное движение как раз к удалению всей переписки и приведет.

поэтому возможны следующие варианты:

к слову сказать, интересен только предпоследний вариант, а я — противный зануда. и вот почему: поскольку засорять мировой интернет и собственный mailbox дублями мне не позволяют религиозные убеждения, а Gmail не предоставляет возможности писать фильтры для лейблов (и другие клиенты меня на данном этапе не особенно волнуют), то остается середина, которая, впрочем, совершенно не золотая:

# оставляем последние 10 сообщений. они дублируются при пересылке ('малая кровь')
# одно сообщение занимает 6 строк
find ~/.centericq -iname "history" -exec bash -c "tail -60 {} > tmp && mv -f tmp {}" \\;

можно, кстати, и с помощью sed и “sliding window” technique, но tail будет быстрее, да и всяко проще. хотя и не так интересно.

но — дальше: ctapnepFiL совершено правильно говорит, что это фу, плохой тон и вообще ошибочно в корне. и он прав, лучше так:

# на удаленной машине хранится вся история,
# однако пересылаются только дополнения ('доступная кровь')
# одно сообщение занимает 6 строк
find ~/.centericq -iname "history" -exec bash -c 
"if [ -f history.old ]; 
then mail -s {} конечный@адрес.com < tail -n +$(($(grep -c . history.old)+1)); 
else mail -s {} конечный@адрес.com < cat history; fi; 
cp history history.old" \\;

или так:

# на удаленной машине хранится  история за 1+1 пересылку,
# пересылаются только дополнения ('сложная кровь')
# одно сообщение занимает 6 строк
find ~/.centericq -iname "history" -exec bash -c 
"if [ -f history.old ]; 
then tail -n +$(($(grep -c . history.old)+1)) > history.diff; 
else cat history > history.diff; fi; 
mail -s {} конечный@адрес.com < history.diff; 
cp history.diff history.old; mv -f history.diff history" \\;

или еще как-нибудь -- но завтра.

  

Leave a Reply