Pregunta

Cuando se invoca ls, me gustaría tener nombres de archivo con un color diferente dependiendo de su estado de subversión. Por ejemplo, un archivo añadido será cian, un archivo modificado rojo y así sucesivamente. ¿Es posible con el poder desnudo de fiesta? ¿Hay algo listo en este sentido?

¿Fue útil?

Solución

Por lo que yo sé, no es posible lograr que la fiesta pura (scripting de lado).

Se puede llegar a ser muy fácil de archivos colorised lista mediante secuencias de comandos (Bash, Python, Perl, sea cual sea su veneno). He aquí una aplicación bastante cruda prueba de concepto escrito en Python: 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)

Otros consejos

He aquí una Gist con la tercera generación de un pequeño script para colorear de salida de subversion. Funciona perfectamente para los comandos svn status. Acabo de añadir a mi alias svns="/path/to/svn-color.py status" .bash_profile y ahora puedo escribir svns y ver la salida de un código de colores. El autor recomienda hacer por defecto svn a su guión.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top