Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 03 May 2020 03:54:33 +0000
From:      bugzilla-noreply@freebsd.org
To:        bugs@FreeBSD.org
Subject:   [Bug 244640] [Patch][Lua loader] Implement missing "read-conf" 4th command
Message-ID:  <bug-244640-227-xwAhh4UCie@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-244640-227@https.bugs.freebsd.org/bugzilla/>
References:  <bug-244640-227@https.bugs.freebsd.org/bugzilla/>

next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D244640

--- Comment #16 from commit-hook@freebsd.org ---
A commit references this bug:

Author: kevans
Date: Sun May  3 03:53:40 UTC 2020
New revision: 360596
URL: https://svnweb.freebsd.org/changeset/base/360596

Log:
  MFC lualoader read-conf support: r360420-r360423, r360425, r360427, r3604=
86,
  \r360505-r360506

  r360420:
  lualoader config: don't call loader.getenv() as much

  We don't actually need to fetch loader_conf_files as much as we do; we've
  already fetched it once at the beginning, we only really need to fetch it
  again after each file we've processed. If it changes, then we can stash t=
hat
  off into our local prefiles.

  While here, drop a note about the recursion so that I stop trying to
  change it. It may very well make redundant some of the work we're doing, =
but
  that's OK.

  r360421:
  lualoader: config: start exporting readConfFiles

  In the process, change it slightly: readConfFiles will take a string like
  loader_conf_files in addition to the loaded_files table that it normally
  takes. This is to facilitate the addition of a read-conf CLI command, whi=
ch
  will just pass in the single file to read and an empty table.

  r360422:
  lualoader: cli: add read-conf

  This is a straightforward match to the command used by many in forthloade=
r;
  it uses the newly-exported config.readConfFiles() to make sure that any
  loader_conf_files gets done as appropriate.

  r360423:
  lualoader: cli: clobber loader_conf_files before proceeding

  This makes sure that config.readConfFiles doesn't see a stale
  loader_conf_files from before, in case the newly loaded file doesn't set =
it.

  r360425:
  config.lua(8): "may should" is not proper grammar

  r360427:
  config.lua(8): catch up to recently added hooks

  While we're here, let's stylize these as functions instead of just raw te=
xt.
  A future change may allow arbitrary data arguments to be passed some of
  these, and the distinction is useful.

  r360486:
  loader.conf(5): document that loader_conf_files may be clobbered

  A future change in lualoader may take some liberties with the
  loader_conf_files in the name of efficiency; namely, it may start omitting
  it from the loader environment entirely so that it doesn't need to worry
  about maintaining any specific value.

  This variable has historically been incredibly volatile anyways, as it may
  get set to completely different values in any given configuration file to
  trigger a load of more files.

  Document now that we may not maintain it in the future, but perhaps we'll
  reserve the right to change our minds and eventually formally export all =
of
  the loader configuration files that were read using this variable.

  r360505:
  lualoader: config: add a table for restricted environment vars

  This new table should be used for transient values that don't need to end=
 up
  in the loader environment. Generally, these will be things that are inter=
nal
  details that really aren't needed or interesting outside of the config
  module (e.g. if we changed how ${module}_* directives work, they might use
  this instead).

  To start, populate it with loader_conf_files. Any specific value of
  loader_conf_files isn't all that interesting; if we're going to export it,
  we should really instead export a loader_conf_files that indicates all of
  the configuration files we processed. This will be used to reduce
  bookkeeping overhead in a future commit that cleans up readConfFiles.

  r360506:
  lualoader: config: improve readConfFiles, rename to readConf

  The previous interface was pretty bad, and required the caller to get some
  implementation details correct that it really shouldn't need to (e.g.
  loader_conf_files handling) and pass in an empty table for it to use.

  The new and much improved interface, readConf, is much less of a hack;
  hiding these implementation details and just doing the right thing.
  config.lua will now use it to process /boot/defaults/loader.conf and the
  subsequent loader_conf_files from there, and read-conf will also use it.

  This improvement submitted by Olivier (cited below), loader_conf_files
  handling from the original patch was changed to just clobber it before
  processing and not bother restoring it after the fact following r360505
  where it's now guaranteed to evade the loader environment.

  PR:           244640

Changes:
_U  stable/11/
  stable/11/stand/defaults/loader.conf.5
  stable/11/stand/lua/cli.lua
  stable/11/stand/lua/config.lua
  stable/11/stand/lua/config.lua.8
_U  stable/12/
  stable/12/stand/defaults/loader.conf.5
  stable/12/stand/lua/cli.lua
  stable/12/stand/lua/config.lua
  stable/12/stand/lua/config.lua.8

--=20
You are receiving this mail because:
You are on the CC list for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-244640-227-xwAhh4UCie>