I’m neit­her very fa­mi­li­ar with Ruby, nor with Rails. However, I li­ke Open Source soft­ware and think it’s im­portant to con­tri­bu­te to pro­jects which are part of your dai­ly work­flow. That’s why I con­tri­bu­te to Redmine any­ways. It’s a gre­at Open Source pro­ject ma­nage­ment web ap­p­li­ca­ti­on and our de­ve­lop­ment team at pa­gi­na GmbH re­li­es hea­vi­ly on it.

Because I know Ruby on Rails very litt­le I won’t wri­te blog posts about crea­ting Redmine plug­ins, de­spi­te ha­ving writ­ten or for­ked several of them, but will in­s­te­ad sha­re so­me scripts from my de­ve­lop­ment pipeline—local and on ser­ver. May so­me of them be of in­te­rest for so­meo­ne…


A ti­ny script to fetch and run la­test Redmine Trunk ver­si­on in a lo­cal de­ve­lop­ment en­vi­ron­ment:

Since I don’t li­ke SVN very much I’m using a clo­ne of the un­of­fi­ci­al Redmine GitHub Mirror and pull chan­ges from over the­re.

Please not that you al­re­ady need Redmine to be in­stal­led be­fo­re using this…

paginaEPUBChecker_markupforumAuf dem letz­ten Markupforum in Stuttgart (Nov. 2013) ha­be ich ei­nen Kurzvortrag über den pa­gi­na EPUB-Checker ge­hal­ten, den ich seit ca. 2-3 Jahren als Freeware ent­wick­le (der EPUB-Checker ist ei­ne gra­phi­sche Benutzeroberfläche um EPUB-E-Books zu va­li­die­ren).

Von mei­nem ehe­ma­li­gen HdM-Professor Marko Hedler wur­de ich (und je­der an­de­re Referent) nach dem Vortrag kurz in­ter­viewt. Sehr spon­tan, muss ich er­wäh­nen, um mein Stottern zu recht­fer­ti­gen 😉

Oder wie ein Kollege so nett mein­te: „Du bist im Internet und kommst da nie wie­der raus.“ 😉

Wer git für Windows in­stal­liert, der hat ei­ne tol­le far­bi­ge Konsole die im git-Repository un­ter an­de­rem den ak­tu­el­len Branch und den Staging-/Commit-Status an­zeigt. Sehr nütz­lich, wenn man viel auf der Kommandozeile un­ter­wegs ist.

git für Mac bzw. die in XCode in­te­grier­te git-Version bie­tet hin­ge­gen von Haus aus kein Syntax-Highlighting im Terminal. Abhilfe schaf­fen fol­gen­de vier Befehle die Optionen in der git-Config än­dern:

git con­fig --glo­bal color.diff true
git con­fig --glo­bal color.status true
git con­fig --glo­bal color.branch true
git con­fig --glo­bal color.ui true

Wem das noch zu we­nig Farbe ist, der kann noch ei­nen Schritt wei­ter ge­hen und sei­ne .bashrc-Datei mit Hilfe der fol­gen­den Skript-Bibliothek an­pas­sen: https://github.com/revans/bash-it

Ich ha­be mir da­bei je­doch nicht die voll­stän­di­gen Tools in­stal­liert son­dern nur Syntax-Highlighting für git (Plugin „git“) und die Code-Completion für git (Completions „git“ und „git_flow“).

git-colored-terminal-mac-osx

Fazit:
IMHO ma­chen erst die bash-it git-Tools das Arbeiten mit git auf der Kommandozeile un­ter Mac OS X wirk­lich sinn­voll. Ohne git-Command-Completion, far­bi­gem Terminal oder Branch-/Staging-Anzeige wä­re das re­la­tiv un­spa­ßig…

Ein klei­nes Skript das die ku­mu­lier­te Gesamtgröße (inkl. Unterordnern) ei­nes Ordners aus­gibt. Das sel­be Ergebnis kann auch mit fol­gen­dem Kommando er­reicht wer­den, ist aber eben mehr zu tip­pen… 😉

du -h -c /root | grep to­tal | awk '{print $1}'

Installation:

cd /usr/lo­cal/bin/
touch dir­si­ze
na­no dir­si­ze
# oder vi dir­si­ze
# Quellcode ein­fü­gen und ab­spei­chern
chmod +x dir­si­ze

Verwendung:

# Ordnergröße in Bytes:
dir­si­ze /root
 
# Ordnergröße in "les­ba­rem" Format mit Einheit (bspw. 1K 234M 2G)
dir­si­ze -h /root
 
# Wie -h, ver­wen­det zur Umrechnung aber 1000er-Blöcke
# => SI-Einheiten an­statt 1024-System
dir­si­ze -si /root
#!/bin/bash
 
#################################################################
#                                                               #
# dir­si­ze - dis­plays the file­si­ze of a di­rec­to­ry                #
#                                                               #
# @author  Tobias Fischer / in­fo (at) me­dia­ver­sal (dot) de      #
# @link    https://tobias-bloggt.de/?p=763                       #
# @date    2011-06-03                                           #
# @version 1.0                                                  #
# @licence CC Attribution-Share Alike 3.0                       #
#          http://creativecommons.org/licenses/by-sa/3.0/       #
#################################################################
 
# dis­play help text
hel­ptext () {
        echo ""
        echo "Usage: $0 [-h|-si|-b] di­rec­to­ry"
        echo ""
        echo "       -h  di­rec­toy  : print si­zes in hu­man read­a­ble for­mat (e.g., 1K 234M 2G)"
        echo "       -si di­rec­to­ry : li­ke -h, but use powers of 1000 not 1024"
        echo "       -b  di­rec­to­ry : dis­play the di­rec­to­ry si­ze in bytes (stan­dard if no op­ti­on)"
        echo "       --help        : dis­play this help text"
        echo ""
}
 
# check first pa­ra­me­ter (should be an op­ti­on)
ca­se $1 in
  -[Hh])
        # dis­play si­ze in hu­man read­a­ble for­mat
        du -h -c $2 | grep to­tal | awk '{print $1}'
        ;;
  -[Ss][Ii])
        # dis­play si­ze in hu­man read­a­ble for­mat
        du --si -c $2 | grep to­tal | awk '{print $1}'
        ;;
  -[Bb])
        # dis­play si­ze in bytes
        du -c $2 | grep to­tal | awk '{print $1}'
        ;;
  --help)
        # dis­play help text
        hel­ptext
        ;;
  *)
        if [ $# -eq 0 ] ; then
 
                echo ""
                echo "ERROR! Bad ar­gu­ments!"
 
                # dis­play help text
                hel­ptext
 
                exit 1
        el­se
                # no op­ti­on set, ta­ke first pa­ra­me­ter as di­rec­to­ry
                # sa­me as -b
                du -c $1 | grep to­tal | awk '{print $1}'
        fi
        ;;
esac