~abompard/mailman/mailman-templates-utf8

« back to all changes in this revision

Viewing changes to src/mailman/commands/cli_control.py

  • Committer: Barry Warsaw
  • Date: 2015-01-20 19:53:16 UTC
  • Revision ID: barry@list.org-20150120195316-lvzfjw3x6o8ut27v
 * Fix calculation of default configuration file to use when the ``$var_dir``
   is created by ``mailman start``.  (LP: #1411435)

Show diffs side-by-side

added added

removed removed

Lines of Context:
103
103
        def log(message):
104
104
            if not args.quiet:
105
105
                print(message)
 
106
        # Try to find the path to a valid, existing configuration file, and
 
107
        # refuse to start if one cannot be found.
 
108
        if args.config is not None:
 
109
            config_path = args.config
 
110
        elif config.filename is not None:
 
111
            config_path = config.filename
 
112
        else:
 
113
            config_path = os.path.join(config.VAR_DIR, 'etc', 'mailman.cfg')
 
114
            if not os.path.exists(config_path):
 
115
                print(_("""\
 
116
No valid configuration file could be found, so Mailman will refuse to start.
 
117
Use -C/--config to specify a valid configuration file."""), file=sys.stderr)
 
118
                sys.exit(1)
106
119
        # Daemon process startup according to Stevens, Advanced Programming in
107
120
        # the UNIX Environment, Chapter 13.
108
121
        pid = os.fork()
117
130
        os.setsid()
118
131
        # Instead of cd'ing to root, cd to the Mailman runtime directory.
119
132
        # However, before we do that, set an environment variable used by the
120
 
        # subprocesses to calculate their path to the $VAR_DIR.  Before we
121
 
        # chdir() though, calculate the absolute path to the configuration
122
 
        # file.
123
 
        config_path = (config.filename if args.config is None
124
 
                       else os.path.abspath(args.config))
 
133
        # subprocesses to calculate their path to the $VAR_DIR.
125
134
        os.environ['MAILMAN_VAR_DIR'] = config.VAR_DIR
126
135
        os.chdir(config.VAR_DIR)
127
136
        # Exec the master watcher.