Scripttip: Mehr Informationen im Bash-Prompt

Welche Ruby-Version verwende ich gerade und in welchem Git-Branch arbeite ich momentan…? Um nicht jedes mal „–version“ und mehr aufzurufen um an diese Information zu kommen, kann man einfach sein Bash-Prompt erweitern. So sind die aktuellen Daten immer präsent und kann u.U. auch Fehler vermeiden.

Um die entsprechenden Details im Bash-Prompt anzuzeigen kann folgende Ergänzung in der .bashrc vorgenommen werden. (In diesem Beispiel gehe ich davon aus, dass rvm zur Verwaltung der Ruby-Version eingesetzt wird.)

[bash]
# In dieser Funktion ermitteln wir den aktuellen Git-Branch in dem wir uns befinden
function find_git_branch {
git branch –no-color 2> /dev/null | sed -e ‚/^[^*]/d‘ -e ’s/* (.*)/[1] /‘
}

rvm system

# Hier wird die aktuelle Ruby-Version ermittelt
function get_rvm_ruby_version(){
RUBY_INFO=`rvm-prompt`
PROMPT_STR=""
if [ -n "$RUBY_INFO" ]; then
PROMPT_STR="[$RUBY_INFO]"
fi
echo $PROMPT_STR
}

# Diese Funktion erweitert den Prompt mit den Daten aus den vorherigen Funktionen
function prompt_func(){
export PS1="[e]0;wa]n[e[32m]u@h [\033[1;36m]$(get_rvm_ruby_version) [\033[0;34m]$(find_git_branch) [e[33m]w[ e[0m]n$ "
}

PROMPT_COMMAND=prompt_func
[/bash]

Nachdem die .bashrc um diese Funtionen ergänzt wurden findet man alle Information in seinem neuen Prompt:
benutzer@host [ruby language=“-1.8.7-p248″][/ruby] [master] ~/mein/pfad/im/git/projekt

Wenn keine Ruby-Version aktiviert ist oder man sich nicht in einem Git-Verzeichnis befindet, werden die entsprechenden Stellen im Prompt weggelassen.

curl Helper für REST

In unserem heutigen Script-Tip stellen wir euch einen kleinen Helfer für REST-Schnittstellen vor. Das Script ruft im Hintergrund das curl-Kommando auf. Durch die Konfiguration-Parameter werden die Übergabe-Parameter auf ein Minimum reduziert.

Quellcode:
 
[bash language="wrap-line=true"]
#!/bin/bash
AUTH="benutzer:passwort"
BASE="http://example.com:3000"
METHOD=$1
DEST="$BASE$2"
XML=$3

# Sicherstellen, dass alle nötigen Parameter übergeben wurden...
if [ $# -eq 0 ]; then
echo "Aufruf: ./`basename $0` HTTP-METHOD ZIEL_URI [XML]"
echo "Beispiel: ./`basename $0` POST "/accounts" "test@example.com""
exit 1
fi

# Rufe CURL mit den übergebenen Parametern auf
curl -H 'Accept: application/xml' -H 'Content-Type: application/xml' -w 'nHTTP STATUS: %{http_code}nTIME: %{time_total}n' 
-X $METHOD 
-d "$XML" 
-u "$AUTH" 
"$DEST"

exit 0
[/bash]

Die langsamsten Actions finden

Railsapplikationen sollen nicht gut aussehen sondern auch schnell arbeiten. Heute zeigen wir euch ein kleines Shellscript mit dem ihr eure Actions nach ihrer Ausführungsgeschwindigkeit sortieren könnt.

Dazu navigiert in das Hauptverzeichnis eurer Applikation und führt folgendes Kommando aus.
Windows-Benutzer können das Kommando in einer Cygwin-Umgebung ausführen.

[bash]
cat log/development.log | awk ‚/Completed/ { print "[" $3 "] – " $0 }‘ | sort -nr
[/bash]

Wenn ihr die Werte aus eurer produktiven Umgebung interessieren, braucht ihr nur das benutze log-File auszutauschen. Also „log/production.log“ anstatt von „log/development.log“.

Viel Spaß beim auswerten.