Frage

Wenn ls Aufruf, würde Ich mag mit einer anderen Farbe Dateinamen haben, je nach ihrem Subversion-Status. Zum Beispiel wird eine zusätzliche Datei Cyan, eine geänderte Datei rot und so weiter. Ist es möglich, mit der bloßen Kraft der bash? Gibt es etwas, bereit, auf dieser Hinsicht?

War es hilfreich?

Lösung

Soweit ich weiß, ist es nicht möglich ist, dass mit reinem bash zu erreichen (scripting beiseite).

Sie können ganz einfach colorised Datei erhalten die Auflistung mithilfe von Skripts (bash, Python, Perl, was auch immer Ihr Gift). Hier ist eine eher grobe Proof-of-Concept-Implementierung in Python geschrieben: https://gist.github.com/776093

#!/usr/bin/env python
import re
from subprocess import Popen, PIPE

colormap = {
    "M" : "31", # red
    "?" : "37;41", # grey
    "A" : "32", # green
    "X" : "33", # yellow
    "C" : "30;41", # black on red
    "-" : "31", # red
    "D" : "31;1", # bold red
    "+" : "32", # green
}
re_svnout = re.compile(r'(.)\s+(.+)$')
file_status = {}


def colorise(line, key):
    if key in colormap.keys():
        return "\001\033[%sm%s\033[m\002" % (colormap[key], line)
    else:
        return line

def get_svn_status():
    cmd = "svn status"
    output = Popen(cmd, shell=True, stdout=PIPE)
    for line in output.stdout:
        match = re_svnout.match(line)
        if match:
            status, f = match.group(1), match.group(2)

            # if sub directory has changes, mark it as modified
            if "/" in f:
                f = f.split("/")[0]
                status = "M"

            file_status[f] = status

if __name__ == "__main__":
    get_svn_status()
    for L in Popen("ls", shell=True, stdout=PIPE).stdout:
        line = L.strip()
        status = file_status.get(line, False)
        print colorise(line, status)

Andere Tipps

hier ein Gist mit der 3. Generation eines kleinen Skript SVN Ausgabe kolorieren. Es funktioniert perfekt für svn status Befehle. Habe ich nur noch alias svns="/path/to/svn-color.py status" meinen .bash_profile und jetzt kann ich svns geben und die farbcodierten Ausgabe. Der Autor empfiehlt, die svn Standard seinen Skript.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top