os-unabhängige Generierung von MANIFEST

Code-Stücke können hier veröffentlicht werden.
Antworten
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Dienstag 2. September 2008, 18:08

Hoi,

hier ein Versuch os-unabhängig ein MANIFEST-file für distutils automatisch zu generieren.

Code: Alles auswählen

def produce_manifest():
    """produce MANIFEST file with all files in the project"""
    try:
        manifest = open('MANIFEST', 'w')
    except IOError, msg:
        raise IOError(msg)
        
    depth = len(os.getcwd().split(os.sep))
    
    for root, dirs, files in os.walk(os.getcwd()):
        # ignore hidden dirs and files, particularly of svn
        if '.' in root:
            continue
        for fname in files:
            manifest.write(os.sep.join(os.path.join(root, fname).split(os.sep)[depth:]) + os.linesep)
    manifest.close()
Ist das so korrekt? Oder doch nicht os-unabhängig? Oder signifikant zu kürzen ohne Übersicht zu verlieren?

Gruß,
Christian

PS Die Funktion ist Teil meines setup-Skripts, wobei das Skript und das MANIFEST-File im Hauptprojektordner sind - der Odner kann natürlich bei jedem, der das Download macht, eine andere relative Position haben.
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

Dienstag 2. September 2008, 18:11

Wo ist der Vorteil zu einer Manifest.in?
[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Dienstag 2. September 2008, 18:18

Auch wenn ich mich oute: Was ist das?

edit: Meinst Du etwa nur den Namen der Datei? Da ist beides möglich - ist so ein bißchen Geschmackssache. Und natürlich kann man auch distutils das MANIFEST selber generieren lassen, aber ich wollte ein paar Anpassungen für mein Projekt.
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

Dienstag 2. September 2008, 20:58

Code: Alles auswählen

[veers@castle httpripper]$ cat MANIFEST.in 
recursive-include share *
include COPYING install.sh
;)
[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Mittwoch 3. September 2008, 08:06

Ja, das geht auch - mein Snippet ist nur ein Ausschnitt aus der tatsächlichen Quelle. So binde ich beispielsweise das Manual ein, allerdings ohne die TeX-Quellen, die ein User nicht braucht, aber Teil des repository sind. Usw.

IMHO ist das hübsch flexibel - vor allem vergesse ich so nicht Dinge im MANIFEST(.in) anzupassen, wenn ich in den Quellen Dinge hinzufüge.
Antworten