Generate the MANIFEST file from git

This commit is contained in:
J. David Ibáñez 2012-07-24 12:28:56 +02:00
parent 5f4d98d7dc
commit 06969ba874
4 changed files with 31 additions and 77 deletions

1
.gitignore vendored

@ -1,3 +1,4 @@
MANIFEST
build build
dist dist
pygit2.so pygit2.so

@ -1,75 +0,0 @@
AUTHORS
COPYING
README.rst
TODO.txt
include/pygit2/commit.h
include/pygit2/config.h
include/pygit2/diff.h
include/pygit2/error.h
include/pygit2/index.h
include/pygit2/object.h
include/pygit2/oid.h
include/pygit2/reference.h
include/pygit2/repository.h
include/pygit2/signature.h
include/pygit2/tag.h
include/pygit2/tree.h
include/pygit2/types.h
include/pygit2/utils.h
include/pygit2/walker.h
pygit2/__init__.py
pygit2/utils.py
setup.py
src/pygit2.c
src/pygit2/blob.c
src/pygit2/commit.c
src/pygit2/config.c
src/pygit2/diff.c
src/pygit2/error.c
src/pygit2/index.c
src/pygit2/object.c
src/pygit2/oid.c
src/pygit2/reference.c
src/pygit2/repository.c
src/pygit2/signature.c
src/pygit2/tag.c
src/pygit2/tree.c
src/pygit2/utils.c
src/pygit2/walker.c
test/__init__.py
test/data/dirtyrepo.tar
test/data/testrepo.git/HEAD
test/data/testrepo.git/config
test/data/testrepo.git/objects/29/7efb891a47de80be0cfe9c639e4b8c9b450989
test/data/testrepo.git/objects/2a/d1d3456c5c4a1c9e40aeeddb9cd20b409623c8
test/data/testrepo.git/objects/2c/dae28389c059815e951d0bb9eed6533f61a46b
test/data/testrepo.git/objects/39/a3001fcc2b9541fdcf4be2d662618a5d213f47
test/data/testrepo.git/objects/3d/2962987c695a29f1f80b6c3aa4ec046ef44369
test/data/testrepo.git/objects/5f/e808e8953c12735680c257f56600cb0de44b10
test/data/testrepo.git/objects/61/4fd9a3094bf618ea938fffc00e7d1a54f89ad0
test/data/testrepo.git/objects/6a/270c81bc80b59591e0d2e3abd7d03450c0c395
test/data/testrepo.git/objects/72/abb8755b2cc6c4e40fd9f50f54384d973a2f22
test/data/testrepo.git/objects/7f/129fd57e31e935c6d60a0c794efe4e6927664b
test/data/testrepo.git/objects/96/7fce8df97cc71722d3c2a5930ef3e6f1d27b12
test/data/testrepo.git/objects/97/d615e1bc273c40c94a726814e7b93fdb5a1b36
test/data/testrepo.git/objects/info/packs
test/data/testrepo.git/objects/pack/pack-822653eb59791a6df714f8aa5fbf9f1c1951478e.idx
test/data/testrepo.git/objects/pack/pack-822653eb59791a6df714f8aa5fbf9f1c1951478e.pack
test/data/testrepo.git/packed-refs
test/data/testrepo.git/refs/heads/master
test/data/testrepo.git/refs/tags/root
test/data/testrepo.tar
test/test_blob.py
test/test_commit.py
test/test_config.py
test/test_diff.py
test/test_index.py
test/test_refs.py
test/test_repository.py
test/test_revwalk.py
test/test_signature.py
test/test_status.py
test/test_tag.py
test/test_tree.py
test/test_treebuilder.py
test/utils.py

@ -18,4 +18,3 @@ Other
PyObject_Del or similar) if the type is subclassable. So, go through the PyObject_Del or similar) if the type is subclassable. So, go through the
code and switch to tp_free, or make the type not subclassable, on a case by code and switch to tp_free, or make the type not subclassable, on a case by
case basis. case basis.
- Automatically generate the MANIFEST file using "git ls-files"

@ -28,12 +28,17 @@
"""Setup file for pygit2.""" """Setup file for pygit2."""
from __future__ import print_function
import os import os
from subprocess import Popen, PIPE
import sys import sys
from distutils.core import setup, Extension, Command from distutils.core import setup, Extension, Command
from distutils.command.build import build from distutils.command.build import build
from distutils.command.sdist import sdist
from distutils import log from distutils import log
# Use environment variable LIBGIT2 to set your own libgit2 configuration. # Use environment variable LIBGIT2 to set your own libgit2 configuration.
libgit2_path = os.getenv("LIBGIT2") libgit2_path = os.getenv("LIBGIT2")
if libgit2_path is None: if libgit2_path is None:
@ -117,7 +122,31 @@ class BuildWithDLLs(build):
self.copy_file(s, d) self.copy_file(s, d)
cmdclass = {'test': TestCommand} class sdist_files_from_git(sdist):
def get_file_list(self):
popen = Popen(['git', 'ls-files'], stdout=PIPE, stderr=PIPE)
stdoutdata, stderrdata = popen.communicate()
if popen.returncode != 0:
print(stderrdata)
sys.exit()
for line in stdoutdata.splitlines():
# Skip hidden files at the root
if line[0] == '.':
continue
self.filelist.append(line)
# Ok
self.filelist.sort()
self.filelist.remove_duplicates()
self.write_manifest()
cmdclass = {
'test': TestCommand,
'sdist': sdist_files_from_git}
if os.name == 'nt': if os.name == 'nt':
# BuildWithDLLs can copy external DLLs into source directory. # BuildWithDLLs can copy external DLLs into source directory.
cmdclass['build'] = BuildWithDLLs cmdclass['build'] = BuildWithDLLs