Preface: a mai workflow mese nem annyira strict OS X dolog, pusztán egy mezei Bash shell scriptet írunk meg benne.
Hónap eleje van – ilyenkor számlázok és írom a worklogot – ez utóbbiról lesz most szó. eFi munkája software support munka: többek között fejlesztek új toolokat és karbantartom a régieket, zömmel VBA-ban. A Microsoft Office VBA nem haszontalan stuff, ám több szempontból is szörnyűséges egy szerzet – elég csak arra gondolni, hogy az Office dokumentumba írt kódot (WTF?) csak egyesével, ún. modulonként tudod kézzel plain text file-ba menteni, az IDE semmi ettől extrább támogatást nem ad.
Anno, amikor elkezdtem VBA-val foglalkozni, írtam magamnak olyan környezetet, ami egy klikkre release ID-t generál az adott verziónak, új sort nyit a kódhoz tartozó changelogban és képes az így megjelölt kódfát tokkal-vonóval plain text file-okba egy verzióként kipakolni. Ehhez aztán készlült egy VBA updater motor is, ami ezt a mentést képes volt visszatölteni, de az egy másik történet – maradjunk most a lementett kódfánál, ami changelogostól pihen a HDD-n egy hierarchikus folder struktúrában.
A velem support szerződést kötő cégnek havonta számlázok, a számla mellé pedig logot kell mellékelnem, ami elmagyarázza, hogy a kiszámlázott hónapban milyen munkákat végeztem el. Ennek a lognak az előállítását automatizálja némiképp a worklog
script. Nézzük meg, azt a végén elmagyarázom röviden, hogy hogy is megy ez az egész:
#!/bin/sh SCRIPT=`basename $0` if [ "$#" != "1" ]; then echo "$SCRIPT - list changes made within a month" echo "Usage: $SCRIPT yyyymm" exit 1 fi MYPATH=/Users/fns/Documents/xp/support/_code PATHLEN=$((${#MYPATH}+1)) #+1 to cut first slash character as well echo "$SCRIPT - list of changes made on $1\n" for f in $(find $MYPATH -iname "changelog*") do if [ -a $f ]; then LOG=`cat $f | grep "'$1"` if [ "$LOG" != "" ]; then SRC=${f:PATHLEN} echo "Log from $SRC:" echo "$LOG\n" fi fi done
- az eleje mindíg a release ID, ami yyyymmdd hh:mm formátumú,
- a közepe egy byte-nyi flag, ami azt jelöli, hogy az adott módosítás új feature (+), törölt feature (-), bugfix (*), vagy éppen csak hangosan gondolkodok (?),
- a vége pedig maga a változás szöveges leírása.
worklog - list of changes made on 201010 Log from cpt/modules/ChangeLog.bas: '20101011 20:00 * Default report fix (default report created instead of last used one when no SF ARCHIVE present and the last used report wants it). '20101011 20:46 * Asset efficiency % report regional fix. '20101012 12:16 * Demand cmp Reports disabled when no SF ARCHIVE present. '20101013 18:57 + Forced forecast archive generation if user omits it to prevent freezing of forecast archive related reports. '20101013 20:04 + Asset group selection support for Demand share per family report. '20101015 08:20 * Demand share per family report MSO/FCODE array empty fix. '20101016 10:41 + Forecast archive generator hack improved.