Ejemplo n.º 1
0
    def save(self):
        saved_files = []
        for f, settings in self.file_settings:
            if len(settings) > 2 and settings[2]:
                saved_files.append(f)
                settings[1] = Merge.merge(*settings[1:])
                while len(settings) > 2:
                    settings.pop()
                if os.path.exists(f):
                    with open(f, 'r') as fo:
                        data = fo.read().split(Yaml.SEPARATOR)[0]
                else:
                    data = ''

                parent = os.path.dirname(f)
                if not os.path.exists(parent):
                    from echomesh.util import Log
                    Log.logger(__name__).info('Creating directory %s.', parent)
                    os.makedirs(parent)

                with open(f, 'wb') as fw:
                    if data:
                        fw.write(data)
                        fw.write(Yaml.SEPARATOR)
                    fw.write(Yaml.encode_one(settings[1]))

        self.arg_settings = Merge.difference_strict(
            self.arg_settings, self.changed)
        self.recalculate()
        return saved_files
Ejemplo n.º 2
0
    def save(self):
        saved_files = []
        for f, settings in self.file_settings:
            if len(settings) > 2 and settings[2]:
                saved_files.append(f)
                settings[1] = Merge.merge(*settings[1:])
                while len(settings) > 2:
                    settings.pop()
                if os.path.exists(f):
                    with open(f, 'r') as fo:
                        data = fo.read().split(Yaml.SEPARATOR)[0]
                else:
                    data = ''

                parent = os.path.dirname(f)
                if not os.path.exists(parent):
                    from echomesh.util import Log
                    Log.logger(__name__).info('Creating directory %s.', parent)
                    os.makedirs(parent)

                with open(f, 'wb') as fw:
                    if data:
                        fw.write(data)
                        fw.write(Yaml.SEPARATOR)
                    fw.write(Yaml.encode_one(settings[1]))

        self.arg_settings = Merge.difference_strict(self.arg_settings,
                                                    self.changed)
        self.recalculate()
        return saved_files
Ejemplo n.º 3
0
def set_config(_, *values):
  if values:
    for address, value in Config.assign(*values):
      LOGGER.info('Set %s=%s', '.'.join(address), value)
  elif MergeConfig.LOCAL_CHANGES:
    LOGGER.info(Yaml.encode_one(MergeConfig.LOCAL_CHANGES))
  else:
    LOGGER.info('You have made no changes.')
Ejemplo n.º 4
0
def set_config(_, *values):
  if values:
    assignment = Leafs.leafs(Config.assign(values))
    for address, value in six.iteritems(assignment):
      LOGGER.info('Set %s=%s', '.'.join(address), value)
  elif Config.MERGE_CONFIG.has_changes():
    LOGGER.info(Yaml.encode_one(dict(Config.MERGE_CONFIG.get_changes())))
  else:
    LOGGER.info('You have made no changes.')
Ejemplo n.º 5
0
 def _write(self, data):
   if self.handler and data:
     d = Yaml.encode_one(data)
     self.handler.wfile.write(d)
     self.handler.wfile.write(Yaml.SEPARATOR)
     if LOG_ALL_DATA:
       FILE.write(d)
       FILE.write(Yaml.SEPARATOR)
       FILE.flush()
     self.handler.wfile.flush()
Ejemplo n.º 6
0
def set_settings(_, *values):
    if values:
        assignment = Leafs.leafs(Settings.assign(values))
        for address, value in six.iteritems(assignment):
            LOGGER.info('Set %s=%s', '.'.join(address), value)
        Settings.update_clients()
    elif Settings.MERGE_SETTINGS.has_changes():
        LOGGER.info(
            Yaml.encode_one(dict(Settings.MERGE_SETTINGS.get_changes())))
    else:
        LOGGER.info('You have made no changes.')
Ejemplo n.º 7
0
def set_settings(_, *values):
    if values:
        assignment = Leafs.leafs(Settings.assign(values))
        for address, value in six.iteritems(assignment):
            LOGGER.info('Set %s=%s', '.'.join(address), value)
        Settings.update_clients()
    elif Settings.MERGE_SETTINGS.has_changes():
        LOGGER.info(
            Yaml.encode_one(dict(Settings.MERGE_SETTINGS.get_changes())))
    else:
        LOGGER.info('You have made no changes.')
Ejemplo n.º 8
0
 def _write(self, data):
   if self.handler and data:
     d = Yaml.encode_one(data)
     self.handler.wfile.write(d)
     self.handler.wfile.write(Yaml.SEPARATOR)
     if self.debug or LOG_ALL_DATA:
       _write(d)
       _write(Yaml.SEPARATOR, True)
     self.handler.wfile.flush()
   else:
     if not self.queue:
       self.queue = queue.Queue(self.max_queue_size)
     self.queue.put(data)
Ejemplo n.º 9
0
  def save(self):
    saved_files = []
    for f, configs in self.file_configs:
      if len(configs) > 2 and configs[2]:
        saved_files.append(f)
        configs[1] = Merge.merge(*configs[1:])
        while len(configs) > 2:
          configs.pop()
        with open(f, 'r') as fo:
          data = fo.read().split(Yaml.SEPARATOR)[0]

        with open(f, 'wb') as fw:
          fw.write(data)
          fw.write(Yaml.SEPARATOR)
          fw.write(Yaml.encode_one(configs[1]))

    self.arg_config = Merge.difference_strict(self.arg_config, self.changed)
    self.recalculate()
    return saved_files
Ejemplo n.º 10
0
def _format(info, spaces=DEFAULT_INDENT):
    s = Yaml.encode_one(info)
    LOGGER.info('\n' + DEFAULT_INDENT + s.replace('\n', '\n' + DEFAULT_INDENT))
Ejemplo n.º 11
0
def _config(_):
  LOGGER.info('\n' + Yaml.encode_one(Config.get_config()))