comparison sat/tools/config.py @ 2671:0fa217fafabf

tools (common/template), jp: refactoring to handle multiple sites: - site can now be specified in template header before theme, for instance: (some_site/some_theme)path/to/template.ext - absolute template paths are now implemented, but Renderer must be instanciated with trusted to True for security reason (it's the case for jp) - a new "front_url_filter" callable can be given to Renderer, which will convert template path to URL seen by end-user (default to real path). - the "front_url_filter" can be used in templates with… "front_url" filter - template_data is a new named tuple available in templates, which give site, theme and template relative URL - search order is site/theme, site/default_theme, and default/default_theme where default link to sat_pubsub templates - when loading CSS files, files with _noscript suffixes are now loaded, and used when javascript is not available - "styles_extra.css" is also loaded before "styles.css", useful when a theme want to reuse default style, and just override some rules - new site can be specified in sat.conf [DEFAULT] section, using sites_path_public_dict or sites_path_private_dict (where sites_path_private_dict won't be used in public frontends, like Libervia) - "private" argument of Renderer tells the renderer to load private sites or not - templates are now loaded from "templates" subdirectory, to differenciate them from other data like i18n - jp template output has been updated to handle those changes, and to manage absolute templates
author Goffi <goffi@goffi.org>
date Mon, 10 Sep 2018 08:58:18 +0200
parents 56f94936df1e
children 003b8b4b56a7
comparison
equal deleted inserted replaced
2670:ef93fcbaa749 2671:0fa217fafabf
45 @param silent (boolean): toggle logging output (must be True when called from sat.sh) 45 @param silent (boolean): toggle logging output (must be True when called from sat.sh)
46 """ 46 """
47 config = SafeConfigParser() 47 config = SafeConfigParser()
48 target_file = None 48 target_file = None
49 for file_ in C.CONFIG_FILES[::-1]: 49 for file_ in C.CONFIG_FILES[::-1]:
50 # we will eventually update the existing file with the highest priority, if it's a user personal file... 50 # we will eventually update the existing file with the highest priority,
51 # if it's a user personal file...
51 if not silent: 52 if not silent:
52 log.debug(_(u"Testing file %s") % file_) 53 log.debug(_(u"Testing file %s") % file_)
53 if os.path.isfile(file_): 54 if os.path.isfile(file_):
54 if file_.startswith(os.path.expanduser("~")): 55 if file_.startswith(os.path.expanduser("~")):
55 config.read([file_]) 56 config.read([file_])
64 with open(target_file, "wb") as configfile: 65 with open(target_file, "wb") as configfile:
65 config.write(configfile) # for the next time that user launches sat 66 config.write(configfile) # for the next time that user launches sat
66 if not silent: 67 if not silent:
67 if option in ("passphrase",): # list here the options storing a password 68 if option in ("passphrase",): # list here the options storing a password
68 value = "******" 69 value = "******"
69 log.warning( 70 log.warning(_(u"Config auto-update: {option} set to {value} in the file "
70 _( 71 u"{config_file}.").format(option=option, value=value,
71 u"Config auto-update: %(option)s set to %(value)s in the file %(config_file)s" 72 config_file=target_file))
72 )
73 % {"option": option, "value": value, "config_file": target_file}
74 )
75 73
76 74
77 def parseMainConf(): 75 def parseMainConf():
78 """look for main .ini configuration file, and parse it""" 76 """look for main .ini configuration file, and parse it"""
79 config = SafeConfigParser(defaults=C.DEFAULT_CONFIG) 77 config = SafeConfigParser(defaults=C.DEFAULT_CONFIG)