über T-Mobile RechnungOnline kann man sich die Rechnung als gpg-verschlüsselten Anhang per Mail schicken lassen – incl. Einzelverbindungsnachweis. Und obwohl’s nur 1x im Monat kommt, ist das Auspacken und Umbenennen in sinnvolle Dateinamen eine lästige Routinearbeit.
Also – automatisieren. Das folgende Ruby-Script erledigt das, nachdem der Rechnungsanhang in einen der Ordner “Downloads” oder “Desktop” gelegt wurde:
#!/usr/bin/ruby dst="#{ENV['HOME']}/Documents/tmobile" # 1. pull together all pgp crypted find Rechnung_15.10.2009.zip.pgp in Desktop, Downloads, local dir ["#{ENV['HOME']}/Downloads", "#{ENV['HOME']}/Desktop", dst].each do |dir| Dir.foreach(dir) do |file| m = /Rechnung_(\d{2})\.(\d{2})\.(\d{4})\.zip(\.pgp|\.gpg)?/.match file if m s = system "mv #{dir}/#{file} #{dst}/#{m[3]}-#{m[2]}-#{m[1]}-bill.zip#{m[4]}" s = system "gpg #{dst}/#{m[3]}-#{m[2]}-#{m[1]}-bill.zip#{m[4]}" if m[4] system "rm #{dst}/#{m[3]}-#{m[2]}-#{m[1]}-bill.zip#{m[4]}" if s && m[4] s = system "unzip #{dst}/#{m[3]}-#{m[2]}-#{m[1]}-bill.zip" system "rm #{dst}/#{m[3]}-#{m[2]}-#{m[1]}-bill.zip" if s puts "de-crypted & unpacked #{dst}/#{m[3]}-#{m[2]}-#{m[1]}-bill.zip" end end end # 2. rename unpacked files accordingly Dir.foreach(dst) do |file| m = /^Rechnung_(\d{4})_(\d{2})_(.+)$/.match file system "mv #{dst}/#{file} #{dst}/#{m[1]}-#{m[2]}-bill-#{m[3]}" if m m = /^Einzelverbindungsnachweis_(\d{4})_(\d{2})_(.+)$/.match file system "mv #{dst}/#{file} #{dst}/#{m[1]}-#{m[2]}-evn--#{m[3]}" if m m = /^Rechnung_(\d{5,20})_(\d{2})_(\d{4})(.+)$/.match file system "mv #{dst}/#{file} #{dst}/#{m[3]}-#{m[2]}-bill-#{m[1]}#{m[4]}" if m m = /^Einzelverbindungsnachweis_(\d{5,20})_(\d{2})_(\d{4})(.+)$/.match file system "mv #{dst}/#{file} #{dst}/#{m[3]}-#{m[2]}-evn--#{m[1]}#{m[4]}" if m end