< Back
20250804 Emil - Perl Is My Abusive GF
On Abusing Perl To Minimize Work

I wanted to simplify the bloog thingy, by centralizing the RSS & Index. This is done by a generator written in Perl using Template. I wrote some templates and some itemizing code for those templates, this isn't actually needed and all the template stuff could be merged into one monolithic file but I didn't want to spend the time figuring out how to do hashmaps/arrays in Template again, not the best compromise.

Files are read in order they passed to the CLI. This is not ideal and I could sort them, however I decided to just designate this to bash which gives it some scriptability. The issue here is dating, which was relatively simple to deal with in perl considering string comparisons can properly order well formed RFC 5322 dates. The format is simple in that it takes a certain set of lines:

Date, usually same as the filename
Author
RSS Plaintext Title
HTML-Enabled Title
Description and Headline
First paragraph .....

Newline Newline, second paragraph.

This continues. BOL #+BEGIN_SRC and BOL #+END_SRC for preformatted text.

As for special cases, like having a <center> you will need to use #+BEGIN_RAW with a #+END_RAW. The end prevents any paragraphing, the beginning doesn't actually do anything past in itself being pruned. note that these are discarded effectively if it doesn't begin with a < after the initial space. God forgive me, I should of used YACC or some shit. This is a complete mess internally with a billion edge cases I've yet to even think about but it works as long as you don't fuck with it. (this is also true for software handling currently-flying-planes, banks and nuclear silos. Or maybe those have yet to run on Javascript?)

Sause is at the Git and in innate deployment here.

I do not like Perl. But it is better than other verymuchso high level languages I've used. Best part is, if I don't use strict it does what I say, like any computer should.

> NOOOO, YOU CAN'T SHOOT YOURSELF IN THE FOOT
> NOOOOOOOOOOOOOOOOOOOOOOOOO

I compile it all locally using the invocation ./bloog.pl $(find orig/ -type f | tac) && cp out/* ../. Very simple stuff.

That's all there's to say about Perl and this shitty script.


Mail now supports all my domains (Xolatile.Top, 3chen.org), not JUST chud.cyou. Which was performed by demonic sacrifice and investing my soul in one of Satan's Pain Production Corporations and Suffering Marketing Agencies.

submission_header_checks ->
/^X-Originating-IP:/        IGNORE
/^X-Mailer:/                IGNORE
/^Mime-Version:/            IGNORE
/^Received: .*/ REPLACE Recieved: hidden

main.cf ->
header_checks = regexp:/etc/postfix/submission_header_checks
mime_header_checks = regexp:/etc/postfix/submission_header_checks

This provides a very useful censor, preventing certain information from being leaked, such as IP. Perhaps I have some other option that populates things like Recieved instead of dropping it like the prior configuration.

sender_login_maps ->
@chud.cyou       emil
etc.

exampleaccount@chud.cyou exampleaccount

main.cf ->
smtpd_sender_login_maps = hash:/etc/postfix/sender_login_maps

I use the authentication system provided by Dovecot. Postfix then matches that to an account. In the above, emil can log into everything everywhere no matter what. While exampleaccount is cucked into only having that handle. I've thought about setting up an account management page, but I also like torturing people into using extremely long passwords. If you don't use a password manager you deserve pain and suffering.

main.cf ->
anvil_rate_time_unit = 86400
smtp_sender_rate_limit = 50
message_size_limit = 104857600

This limits email size and quantity in 24 hours (though this may not actually be by the period of the day, but rather whenever Postfix is restarted, but I can't tell which.) All of the domains point their mx. domain to mx.chud.cyou as to minimize the need for several certs in one program, which is a rare treat anyhow.

Some loser on the IRC didn't make backups, lost all of his shit. He was also using Windows, and he caused the fault in his system by fucking with Windows. Make backups. Here's the shitty backup script the server runs:

#!/bin/sh
dir=$(date +"%y%m%d")
mkdir -p $dir
cp -a ../etc ../home ../opt ../root ../srv ../var $dir/
apt list --installed > $dir/installed
echo done.

I'm leaving out a bunch of shit because I did this all last month but just know that there's way more to it and it's going to explode if you fuck with it. Overall the server is doing decently and still not rapidly degenerating. Give it twenty two seconds.


RSS

©opyright Emil $CURRENT_YEAR Public Domain