Harry Henry Gebel: add the "--record" option to write the list of

installed files to INSTALLED_FILES.
This commit is contained in:
Gregory P. Smith 2000-05-13 01:58:19 +00:00
parent a190268bf6
commit 8cb676195b
1 changed files with 21 additions and 1 deletions

View File

@ -12,6 +12,7 @@ from distutils.core import Command
from distutils import sysconfig from distutils import sysconfig
from distutils.util import write_file, native_path, subst_vars, change_root from distutils.util import write_file, native_path, subst_vars, change_root
from distutils.errors import DistutilsOptionError from distutils.errors import DistutilsOptionError
from glob import glob
INSTALL_SCHEMES = { INSTALL_SCHEMES = {
'unix_prefix': { 'unix_prefix': {
@ -87,8 +88,10 @@ class install (Command):
#('install-man=', None, "directory for Unix man pages"), #('install-man=', None, "directory for Unix man pages"),
#('install-html=', None, "directory for HTML documentation"), #('install-html=', None, "directory for HTML documentation"),
#('install-info=', None, "directory for GNU info files"), #('install-info=', None, "directory for GNU info files"),
]
('record', None,
"make a record of installation"),
]
# 'sub_commands': a list of commands this command might have to run # 'sub_commands': a list of commands this command might have to run
# to get its work done. Each command is represented as a tuple # to get its work done. Each command is represented as a tuple
@ -151,6 +154,7 @@ class install (Command):
#self.install_html = None #self.install_html = None
#self.install_info = None #self.install_info = None
self.record = None
def finalize_options (self): def finalize_options (self):
@ -441,6 +445,22 @@ class install (Command):
"you'll have to change the search path yourself") % "you'll have to change the search path yourself") %
self.install_lib) self.install_lib)
# write list of installed files, if requested.
if self.record:
outputs = self.get_outputs()
for counter in xrange (len (outputs)): # include ".pyc" and ".pyo"
if outputs[counter][-3:] == ".py":
byte_code = glob(outputs[counter] + '[co]')
outputs.extend(byte_code)
outputs.sort() # just makes it look nicer
if self.root: # strip any package prefix
root_len = len(self.root)
for counter in xrange (len (outputs)):
outputs[counter] = outputs[counter][root_len:]
self.execute(write_file,
("INSTALLED_FILES", outputs),
"Writing list of installed files")
# run () # run ()