Exemple #1
0
def parse_lib(conf,opt,val):
  """parse the lib into a list"""

  val = val.replace('\n','')

  # paths are separated by semi-colon
  entries = util.split_strip(val,';')
  lib = []
  for entry in entries:
    if entry=='':
      continue
    if ',' in entry:

      if not util.has_module('smbc'):
        conf.log('warning','Ignoring share "%s" (missing smbc)' % entry)
        continue

      # samba share parameters are separated by comma
      params = util.split_strip(entry,',')
      item = {'server':params[0], 'share':params[1],
          'username':None, 'password':None}
      if len(params)>2:
        item['username'] = params[2]
      if len(params)>3:
        item['password'] = Password(params[3])
    else:
      item = entry
    lib.append(item)
  return lib
Exemple #2
0
  def parse_rooms(self,opt,val):
    """parse the rooms into a list"""

    val = val.replace('\n','')
    entries = util.split_strip(val,';')
    rooms = {}
    for entry in entries:
      if entry=='':
        continue
      params = util.split_strip(entry,',')
      if not params[0] or ':' not in params[0]:
        self.log('warning','Ignoring room "%s"; invalid syntax' % entry)
        continue
      room = util.split_strip(params[0],':')
      (pname,room) = (room[0],':'.join(room[1:]))

      # check for optional arguments
      room = {'room':room,'nick':None,'pass':None}
      if len(params)>1 and params[1]:
        room['nick'] = params[1]
      if len(params)>2 and params[2]:
        room['pass'] = Password(params[2])

      # add room to dict
      if pname in rooms:
        rooms[pname].append(room)
      else:
        rooms[pname] = [room]
    return rooms
Exemple #3
0
  def parse_pass(self,opt,val):
    """return a Password-object-encapsulated string"""

    return Password(val)