summaryrefslogtreecommitdiffstats
path: root/Lib/distutils/dist.py
diff options
context:
space:
mode:
authorTarek Ziadé <ziade.tarek@gmail.com>2009-10-27 23:06:10 (GMT)
committerTarek Ziadé <ziade.tarek@gmail.com>2009-10-27 23:06:10 (GMT)
commit40b998b05dc2fe6cfd96793793f9087eb075d475 (patch)
tree21b16d15ba4bec66ff70680ed7481db3f51c705d /Lib/distutils/dist.py
parent4e1be94bc6c7ec21daf1de030cc59c9c61b498f8 (diff)
downloadcpython-40b998b05dc2fe6cfd96793793f9087eb075d475.zip
cpython-40b998b05dc2fe6cfd96793793f9087eb075d475.tar.gz
cpython-40b998b05dc2fe6cfd96793793f9087eb075d475.tar.bz2
Fixed #1180: Option to ignore ~/.pydistutils.cfg in Distutils
Diffstat (limited to 'Lib/distutils/dist.py')
-rw-r--r--Lib/distutils/dist.py35
1 files changed, 30 insertions, 5 deletions
diff --git a/Lib/distutils/dist.py b/Lib/distutils/dist.py
index eb7d01c..8dc64d4 100644
--- a/Lib/distutils/dist.py
+++ b/Lib/distutils/dist.py
@@ -56,7 +56,9 @@ class Distribution:
('quiet', 'q', "run quietly (turns verbosity off)"),
('dry-run', 'n', "don't actually do anything"),
('help', 'h', "show detailed help message"),
- ]
+ ('no-user-cfg', None,
+ 'ignore pydistutils.cfg in your home directory'),
+ ]
# 'common_usage' is a short (2-3 line) string describing the common
# usage of the setup script.
@@ -264,6 +266,22 @@ Common commands: (see '--help-commands' for more)
else:
sys.stderr.write(msg + "\n")
+ # no-user-cfg is handled before other command line args
+ # because other args override the config files, and this
+ # one is needed before we can load the config files.
+ # If attrs['script_args'] wasn't passed, assume false.
+ #
+ # This also make sure we just look at the global options
+ self.want_user_cfg = True
+
+ if self.script_args is not None:
+ for arg in self.script_args:
+ if not arg.startswith('-'):
+ break
+ if arg == '--no-user-cfg':
+ self.want_user_cfg = False
+ break
+
self.finalize_options()
def get_option_dict(self, command):
@@ -316,7 +334,10 @@ Common commands: (see '--help-commands' for more)
Distutils installation directory (ie. where the top-level
Distutils __inst__.py file lives), a file in the user's home
directory named .pydistutils.cfg on Unix and pydistutils.cfg
- on Windows/Mac, and setup.cfg in the current directory.
+ on Windows/Mac; and setup.cfg in the current directory.
+
+ The file in the user's home directory can be disabled with the
+ --no-user-cfg option.
"""
files = []
check_environ()
@@ -336,15 +357,19 @@ Common commands: (see '--help-commands' for more)
user_filename = "pydistutils.cfg"
# And look for the user config file
- user_file = os.path.join(os.path.expanduser('~'), user_filename)
- if os.path.isfile(user_file):
- files.append(user_file)
+ if self.want_user_cfg:
+ user_file = os.path.join(os.path.expanduser('~'), user_filename)
+ if os.path.isfile(user_file):
+ files.append(user_file)
# All platforms support local setup.cfg
local_file = "setup.cfg"
if os.path.isfile(local_file):
files.append(local_file)
+ if DEBUG:
+ self.announce("using config files: %s" % ', '.join(files))
+
return files
def parse_config_files(self, filenames=None):