def parse_configuration_and_args(defaults, uiname, arglist=[], minargs=0, maxargs=0): defconfig = dict([(name, value) for (name, value, doc) in defaults]) if arglist[0:] == ['--version']: print version sys.exit(0) if arglist[0:] in (['--help'], ['-h'], ['--usage'], ['-?']): parseargs.printHelp(uiname, defaults) sys.exit(0) presets = get_config(defconfig, uiname) config, args = parseargs.parseargs(arglist, defaults, minargs, maxargs, presets) datadir = config['data_dir'] if datadir: if uiname in ('bittorrent', 'maketorrent'): values = {} p = _read_config(os.path.join(datadir, MAIN_CONFIG_FILE)) if not p.has_section(uiname) and p.has_section(alt_uiname[uiname]): uiname = alt_uiname[uiname] if p.has_section(uiname): for name, value in p.items(uiname): if name in defconfig: values[name] = value parseargs.parse_options(defconfig, values) presets.update(values) config, args = parseargs.parseargs(arglist, defaults, minargs, maxargs, presets) for d in ('', 'resume', 'metainfo'): ddir = os.path.join(datadir, d) try: if not os.path.exists(ddir): os.mkdir(ddir, 0700) except: pass if config['language'] != '': try: lang = gettext.translation('bittorrent', locale_root, languages=[config['language']]) lang.install() except IOError: # don't raise an error, just continue untranslated sys.stderr.write( _('Could not find translation for language "%s"\n') % config['language']) if config.has_key('bind') and ['bind'] != '': bind_tracker_connection(config['bind']) return config, args
def parse_configuration_and_args(defaults, uiname, arglist=[], minargs=0, maxargs=0): defconfig = dict([(name, value) for (name, value, doc) in defaults]) if arglist[0:] == ['--version']: print version sys.exit(0) if arglist[0:] in (['--help'], ['-h'], ['--usage'], ['-?']): parseargs.printHelp(uiname, defaults) sys.exit(0) presets = get_config(defconfig, uiname) config, args = parseargs.parseargs(arglist, defaults, minargs, maxargs, presets) datadir = config['data_dir'] if datadir: if uiname in ('bittorrent', 'maketorrent'): values = {} p = _read_config(os.path.join(datadir, MAIN_CONFIG_FILE)) if not p.has_section(uiname) and p.has_section(alt_uiname[uiname]): uiname = alt_uiname[uiname] if p.has_section(uiname): for name, value in p.items(uiname): if name in defconfig: values[name] = value parseargs.parse_options(defconfig, values) presets.update(values) config, args = parseargs.parseargs(arglist, defaults, minargs, maxargs, presets) for d in ('', 'resume', 'metainfo'): ddir = os.path.join(datadir, d) try: if not os.path.exists(ddir): os.mkdir(ddir, 0700) except: pass if config['language'] != '': try: lang = gettext.translation('bittorrent', locale_root, languages=[config['language']]) lang.install() except IOError: # don't raise an error, just continue untranslated sys.stderr.write(_('Could not find translation for language "%s"\n') % config['language']) if config.has_key('bind') and ['bind'] != '': bind_tracker_connection(config['bind']) return config, args
if not os.path.exists(ddir): os.mkdir(ddir, 0700) else: assert(os.path.isdir(ddir)) if found_4x_config: # version 4.x stored KB/s, < version 4.x stores B/s config['max_upload_rate'] *= 1024 if config.get('language'): # this is non-blocking if the language does not exist smart_gettext_and_install('bittorrent', locale_root, languages=[config['language']]) if config.has_key('bind') and config['bind'] != '': bind_tracker_connection(config['bind']) if config.has_key('launch_on_startup'): enforce_shortcut(config, log_func=sys.stderr.write) if os.name == 'nt' and config.has_key('enforce_association'): enforce_association() if config.has_key('save_in') and config['save_in'] == '' and \ (not config.has_key("save_as") or config['save_as'] == '' ) \ and uiname != 'bittorrent': config['save_in'] = decode_from_filesystem(get_save_dir()) incomplete = decode_from_filesystem(get_incomplete_data_dir()) if config.get('save_incomplete_in') == '': config['save_incomplete_in'] = incomplete