ÿØÿàJFIFÿþ ÿÛC       ÿÛC ÿÀÿÄÿÄ"#QrÿÄÿÄ&1!A"2qQaáÿÚ ?Øy,æ/3JæÝ¹È߲؋5êXw²±ÉyˆR”¾I0ó2—PI¾IÌÚiMö¯–þrìN&"KgX:Šíµ•nTJnLK„…@!‰-ý ùúmë;ºgµŒ&ó±hw’¯Õ@”Ü— 9ñ-ë.²1<yà‚¹ïQÐU„ہ?.’¦èûbß±©Ö«Âw*VŒ) `$‰bØÔŸ’ëXÖ-ËTÜíGÚ3ð«g Ÿ§¯—Jx„–’U/ÂÅv_s(Hÿ@TñJÑãõçn­‚!ÈgfbÓc­:él[ðQe 9ÀPLbÃãCµm[5¿ç'ªjglå‡Ûí_§Úõl-;"PkÞÞÁQâ¼_Ñ^¢SŸx?"¸¦ùY騐ÒOÈ q’`~~ÚtËU¹CڒêV  I1Áß_ÿÙimport os import re import tuned.logs from .functions import functions as functions import tuned.consts as consts from tuned.utils.commands import commands from tuned.utils.config_parser import ConfigParser, Error log = tuned.logs.get() class Variables(): """ Storage and processing of variables used in profiles """ def __init__(self): self._cmd = commands() self._lookup_re = {} self._lookup_env = {} self._functions = functions.Functions() def _add_env_prefix(self, s, prefix): if s.find(prefix) == 0: return s return prefix + s def _check_var(self, variable): return re.match(r'\w+$',variable) def add_variable(self, variable, value): if value is None: return s = str(variable) if not self._check_var(variable): log.error("variable definition '%s' contains unallowed characters" % variable) return v = self.expand(value) # variables referenced by ${VAR}, $ can be escaped by two $, # i.e. the following will not expand: $${VAR} self._lookup_re[r'(?