summaryrefslogtreecommitdiff
path: root/setuptools/command/saveopts.py
diff options
context:
space:
mode:
authorJason R. Coombs <jaraco@jaraco.com>2021-11-10 12:12:49 -0500
committerJason R. Coombs <jaraco@jaraco.com>2021-11-10 12:13:40 -0500
commit958ce2304e153b274e2ff7b40b1e7d5ddd214904 (patch)
treebb1b77cfc08c31fb69eebdb0c66f5c0dde3f5223 /setuptools/command/saveopts.py
parent23f63dd44c5d9f75de195833d25a5f2872220c2b (diff)
parent8af23a41194ae747faf3e60f9cc19141b5e7ad24 (diff)
downloadpython-setuptools-git-958ce2304e153b274e2ff7b40b1e7d5ddd214904.tar.gz
Merge pull request #2866 into main.
Diffstat (limited to 'setuptools/command/saveopts.py')
-rw-r--r--setuptools/command/saveopts.py22
1 files changed, 22 insertions, 0 deletions
diff --git a/setuptools/command/saveopts.py b/setuptools/command/saveopts.py
new file mode 100644
index 00000000..611cec55
--- /dev/null
+++ b/setuptools/command/saveopts.py
@@ -0,0 +1,22 @@
+from setuptools.command.setopt import edit_config, option_base
+
+
+class saveopts(option_base):
+ """Save command-line options to a file"""
+
+ description = "save supplied options to setup.cfg or other config file"
+
+ def run(self):
+ dist = self.distribution
+ settings = {}
+
+ for cmd in dist.command_options:
+
+ if cmd == 'saveopts':
+ continue # don't save our own options!
+
+ for opt, (src, val) in dist.get_option_dict(cmd).items():
+ if src == "command line":
+ settings.setdefault(cmd, {})[opt] = val
+
+ edit_config(self.filename, settings, self.dry_run)