Casualty 14-18 ~ The making of a generative artwork by Richard Bolam – Part 8 #bolamat50 #casualty1418 #WW1

Screen shot 2014-08-07 at 16.07.58

By the way, I am not an expert programmer and the code published here is experimental and comes with absolutely NO WARRANTY WHATSOEVER, so please USE AT YOUR OWN RISK.

Okay, pick the bones out of this one.

FILENAMES2=’-a ‘`echo $FILENAMES | sed ‘s/ / -a /g’`

Every space and flying ant is very specific and those “back-ticks” are not optional. This code fragment simultaneously illustrates what is both good and bad about linux / unix. Although I am still a bit of a noob with Bash, I can now reliably produce working code that actually does things I want. However, I am still regularly stumped by the unintuitive subtleties of the syntax.

Also, although there is a wealth of documentation online, much of it is incomplete and/or it does not necessarily work exactly the same on different implementations of Linux. I am not sure how much of this is due to my use of Mac OS X.

Anyway, it took a few hours of every combination of trial and error and a few leaps of faith to get this part of the script working. What I was trying to get working here is the automation of emailing the blog posts. I found a very helpful post on simplehelp.net:

http://www.simplehelp.net/2008/12/01/how-to-send-email-from-the-linux-command-line/

The Linux mail command does exactly what you would think, but it does not support attachments. However, there is an other command mutt which does the same but adds a lot more functionality. It’s deceptively simple to send an email from the command line, but for a while I could not work out how to add multiple attachments, and this is the bit that required a bit of head-banging.

If you google search sending multiple attachments you get lots of references to adding “-a” flag to each of the filenames, but I need to add a whole folder full and don’t want to have to list them verbosely.

I will not keep you guessing as long as it took me (and this might not be the best method) but just passing a list of file/path names after the first “-a” attachment flag does not work no matter what I tried. Anyway, with a bit of lateral thinking I wondered if I could programmatically format a list of file/pathnames as a string with a “-a” in front of each one.

This kind of preprocessing is where Bash programming really excels, and I found reference to the sed (stream editor) command to substitute the string” -a ” instead of the single spaces separating the derived list. That leaves the first file without a flag, hence the literal at the beginning of the calculation.

Code fragment:

#email images to a blog post
cd $PATHNAME
FILENAMES=*.png
FILENAMES2=’-a ‘`echo $FILENAMES | sed ‘s/ / -a /g’`
echo $FILENAMES2
echo ‘[tags #casualty1418,#bolamat50,#WW1,Casualty,Casualty 14-18,#firstworldwar,First World War,generative,algorithmic,art,Richard Bolam,Bolam Retrospective,#bolamat50][nogallery]’ | mutt $FILENAMES2 -s ‘Casualty 14-18 ~ ‘$(date +”%d/%m/%y”)’ #casualty1418 #WW1 – test post’ youremailaddress@post.wordpress.com

WordPress has a very full implementation of formatting options for emailing blog posts to your own blog. You have to create a unique email address and you can include various tags to add features to the post. The code here includes meta tags and an instruction to keep the images as a series of inline images rather than a gallery.
http://en.support.wordpress.com/post-by-email/

The next stage will be to add a tag to schedule the posts for a specific time and date. More soon…
http://casualty1418.net

 

 

Casualty1418-14_08_06-01

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s