Jo o timetracking se rád podělim, je to ale hodně ... no, jak bych řekl Občas je potřeba něco opravit ručně, když to člověk poplete
Vypadá to zajímavě, ale přiznám se, že jsem v tom už pár chyb našel. Pustil jsem se do refaktorování, abych lépe pochopil principy, na kterých to funguje. Například mi uniká, proč tam máš například řádek
echo -n $DATE $TIME $STIME $ARG1""$2""$3""$4""$5""$6""$7""$8""$9 >> switchwork.log
když daleko lépe poslouží
echo "$DATE $TIME $STIME $@" >> switchwork.log
a přitom neslepuje slova.
Přeskakování mezi adresáři také považuji za zbytečné. Stačí na začátku nadefinovat
SW="$HOME/.switchwork"
DATE=`date +%Y.%m.%d`
SW_TODAY="$SW/$DATE"
SW_LOG="$SW/switchwork.log"
# a dál už jen třeba
echo "$DATE $TIME $STIME $@" >> "$SW_LOG"
Doporučuji náhradu "-c" za "-l" (jako list). Je to tak u mnoha dalších konzolových příkazů.
Také tam vidím porušení DRY - s tím také něco udělám. Zkusím to vyčistit a zkrátit - 60 řádek mi snad bude stačit. Pak se pustím do toho stromu, který mi možná také bude k užitku.
StromZkusme nejprve vymyslet rozhraní. Klíče mě napadají obráceně jako u domén, tedy
služba.podslužba.atribut hodnota
Nejprve základní rozhraní pro reporty. Pokud budu chtít vypsat nějakou službu, použiji zmíněný parametr "-l". Bude se vypisovat jen tak hluboko, kolik je uvedeno slov. Příkaz
strom -l
vypíše klienty a na řádku vypíše jejich hlavní používané služby - pouze klíče.
strom -l služba
vypíše klienty, na každém řádku bude jméno, služba a seznam podslužeb
strom -l služba.podslužba
vypíše klienty, na každém řádku bude jméno, služba.podslužba a seznam atribut:hodnota
Přidávání nového typu služby. To aby nevznikaly živelně:
strom -n služba
strom -n služba.podslužba
Přidání záznamu:
strom -a klient služba.podslužba atribut:hodnota "atribut2:hodnota2"
Uvozovky použiješ, pokud hodnota bude obsahovat například mezery.
Tak snad to pro tuto chvíli stačí. Jsi na řadě.