Kategorie: Tools

[bash] VCS Info im Shell-Prompt

folgender Code in der .bashrc zeigt den VCS-Status (git oder svn) des aktuellen Verzeichnisses an.
Getestet unter Windows8/cygwin, sollte aber auf jeder Plattform funktionieren (wenn eine bash verwendet wird).
export LC_MESSAGES=C ist nötig wenn svn oder git lokalisierte Meldungen ausgeben (ein ewiges Ärgernis).


export LC_MESSAGES=C
GREEN="\[\033[0;32m\]"
LIGHT_GREEN="\[\033[1;32m\]"
GRAY="\[\033[1;30m\]"
LIGHT_BLUE="\[\033[1;34m\]"
LIGHT_GRAY="\[\033[0;37m\]"
COLOR_OFF="\[\e[0m\]"
function prompt_func() {
branch_pattern="\* ([^$IFS]*)"
PS1="$LIGHT_GRAY\u$COLOR_OFF $LIGHT_GREEN\w$COLOR_OFF"
if [[ -d "./.git" && "$(git branch --no-color 2> /dev/null)" =~ $branch_pattern ]]; then
branch="${BASH_REMATCH[1]}"
PS1+=":$LIGHT_BLUE$branch$COLOR_OFF"
elif [[ -d "./.svn" ]]; then
path_pattern="URL: ([^$IFS]*).*Repository Root: ([^$IFS]*).*Revision: ([0-9]*)"
if [[ "$(svn info 2> /dev/null)" =~ ${path_pattern} ]]; then
branch=${BASH_REMATCH[1]##`expr ${BASH_REMATCH[2]}`}
revision="${BASH_REMATCH[3]}"
PS1+=":$LIGHT_BLUE$branch$GRAY@$revision$COLOR_OFF"
fi
fi
PS1+=" "
}
PROMPT_COMMAND=prompt_func

mit vagrant & virtualbox schnell zu einer debian-vm mit allen(?) für typo3 nötigen komponenten


mkdir mein-typo3-server
cd mein-typo3-server
git clone https://github.com/thegass/vagrant-box-typo3-ready.git .
vagrant up

Dabei wird eine mit allen(?) nötigen Komponenten ausgestattete Box heruntergeladen und mit folgenden features konfiguriert und gestartet.
Gast Port 80 gemappt auf Host Port 8080
Host-Verzeichnis htdocs gemountet auf /var/www im Gast.
Mysql-Root Passwort: vagrant

Alles was dann noch fehlt ist die eigentliche Typo3-Installation in htdocs.

Postfix: alle mails kriegen

Manchmal machts (vorallem auf Entwicklungsservern) Sinn alle ausgehenden Mails unabhängig von der Empfängeradresse an einen Empfänger zuzustellen.

Postfix macht einem sowas recht einfach.

Nehmen wir an wir wollen alles an catchall@mydomain.invalid zustellen.

Als erstes tragen folgendes in die /etc/postfix/main.cf ein


always_bcc=catchall@mydomain.invalid
transport_maps = hash:/etc/postfix/transport

Damit werden schon mal alle Mails als bcc an catchall@mydomain.invalid gesendet.

Als 2. Schritt konfigurieren wir die Transport-Table (/etc/postfix/transport) so daß nur an diese Adresse zugestellt wird.


catchall@mydomain.invalid :
* discard:silently

Die erste Zeile bewirkt daß Mails an catchall@mydomain.invalid „normal“ zugestellt werden.
Die 2 Zeile verwirft Mails an alle anderen Empfänger.

Wenns mal wieder länger dauert

Szenario:

  • Ein Shell-script wird in relativ kurzen Intervallen via cron ausgeführt (z.B. „pseudo Echtzeit“-Sync o.ä).
  • „Normalerweise“ läuft das Script immer kürzer als der Cron-Intervall (2min Laufzeit, 4min Intervall).
  • „Manchmal“ dauerts länger und dann laufen auf einmal mehrere Instanzen (und kommen sich vielleicht in die Quere)

Es soll/muss also ein Lockfile her.

Hier hilft folgendes kleine C-Programm lockrun.c.
Es sollte sich auf allen Unix/Linux/wasweissichfüreinX – Systemen mit gcc übersetzen lassen (gcc -o lockrun lockrun.c) und arbeitet dann als Wrapper ums Script und erledigt das Lock-File-Handling.

In die crontab kommt dann sowas in der Art:

XAMPP PHPUnit 3.5.13 Installation Howto

Sollte Ihnen dieser Fehler bekannt sein:
Could not open input file: .\pear\PHPUnit2\TextUI\TestRunner.php
dann gibts hier die Lösung.

Nachdem wir mehrere Server auf PHP 5.3 und MySQL auf 5.1 hochgezogen hatten,
war es an der Zeit auch meine lokale Umgebung (ältere XAMPP-Instanz) einem Upgrade zu unterziehen. Also XAMPP in der aktuellen Version (1.7.4) mit Apache 2.2.17, MySQL 5.5.8 und PHP 5.3.5 installiert, und …

BOOOM, jeder Aufruf von phpunit krepierte mit obiger Fehlermeldung.

Dies lässt sich zwar einfach fixen indem man im File C:\xampp\php\phpunit.bat die Pfade absolut setzt, aber dann hat man noch immer nur eine veraltete phpunit Version, die einen nicht glücklich machen wird. Auf unseren Debian-Servern läuft derzeit PHPUnit 3.5.11 also gilt es diese Version auch lokal zu haben.

Spass mit Git Episode 1: Wie werden aus 126MB 4.8GB

Oder wie krieg ich alle im SVN getagten Typo3-Releases als typo3_src-Targets

Was brauch ich:

  1. git mit SVN Support
  2. Internet
  3. Genug Platz auf der Platte

Schritt 1: Wir holen und das Typo3-SVN-Repository in der git-Version auf die Platte

cd ~/tmp
mkdir repo
cd repo

git svn init --stdlayout https://svn.typo3.org/TYPO3v4/Core
git svn fetch

Das Ganze dauert je nach Bandbreite etwas. Updates gehen später natürlich schneller.

Die Option –stdlayout gibt an daß das SVN-Repo die Standard-Aufteilung in trunk/branches/tags verwendet.

Die finale Grösse des git-Repositories (im .git Verzeichnis) beträgt nach heutigem Stand ca. 126M. Während des Checkouts kanns schon mal auf > 400MB anwachsen.
git gc machts immer wieder schön klein.

sparkup – write HTML faster

sparkup ist ein kleines Python Script, das Kürzel in einer CSS ähnlichen Syntax zu vollständigen HTML Strukturen erweitert.

Beispiel:

h1#headline{Meine Überschrift}

wird zu

<h1 id="headline">Meine Überschrift</h1>

„Plugins“ für VIM und Textmate sind gleich dabei, man kann das Script natürlich auch einfach auf der Shell aufrufen.

Das VIM Plugin läßt sich einfach so installieren:

  • sparkup herunterladen und entpacken
  • sparkup Binary in ein Verzeichnis im PATH (z.B. /usr/local/bin)
  • cp -R sparkup-20091205/vim/ftplugin ~/.vim/
  • VIM starten, Kürzel eingeben und STRG+E ruft sparkup auf

:-)

grepWin – GUI Suche für Windows

Regex und Textsuche inkl. Ersetzen unter Windows

Einfacher geht’s ja (fast) gar nicht mehr:
Rechts-Klick auf einen beliebigen Ordner grepWin aus dem Kontextmenü auswählen und schon geht die Suche dahin.

grepWin bietet Text oder Regey Suche, einen Regex-Validator, die Möglichkeit einmal durchgeführte Suchen in Bookmarks zu speichern und noch vieles mehr.

Mein Resumee: Die Windows-Suche hat längst ausgedient, ein Hoch auf grepWin

Download und Screenshots unter http://tools.tortoisesvn.net/grepWin

Danke an Masi für den Tip.

Anfrage