3.27. kink/conf/CONF

Mod to read conf vals. See CONF.read.

3.27.1. CONF.read($config_target $config_read)

CONF.read reads a conf val from $config_target, with settings configured by $config_read.

Example:

:CONF.require_from('kink/conf/')

:open_file <- {(:Config.opt)
  :config = Config.just_or{ {} }
  :Map = CONF.read($config){(:Rc)
    Rc.no_arg('append')
    Rc.opt_arg('buffer' 2048)
    Rc.req_arg('newline')
  }

  :Append? = Map.have_key?('append')
  stdout.print('Append? = {}'.format(Append?.repr))

  Map.get_maybe('buffer').with_just_or(
    {(:Buf_size)
      stdout.print(', Buffer size = {}'.format(Buf_size))
    }
    { stdout.print(', No buffer') }
  )

  Map.get_maybe('newline').with_just_or(
    {(:Newline)
      stdout.print(', Newline = {}'.format(Newline.repr))
    }
    { stdout.print_line(', No newline') }
  )
}

open_file
# => Append? = false, No buffer, No newline

open_file{(:C)
  C.append
  C.buffer(1024)
  C.newline("\n")
}
# => Append? = true, Buffer size = 1024, Newline = "\n"

open_file{(:C)
  C.buffer
}
# => Append? = false, Buffer size = 2048, No newline