1from setuptools.command.setopt import edit_config, option_base
2
3
4class saveopts(option_base):
5    """Save command-line options to a file"""
6
7    description = "save supplied options to setup.cfg or other config file"
8
9    def run(self):
10        dist = self.distribution
11        settings = {}
12
13        for cmd in dist.command_options:
14
15            if cmd == 'saveopts':
16                continue  # don't save our own options!
17
18            for opt, (src, val) in dist.get_option_dict(cmd).items():
19                if src == "command line":
20                    settings.setdefault(cmd, {})[opt] = val
21
22        edit_config(self.filename, settings, self.dry_run)
23