summaryrefslogtreecommitdiff
path: root/mkluatexfontdb.lua
diff options
context:
space:
mode:
Diffstat (limited to 'mkluatexfontdb.lua')
-rwxr-xr-xmkluatexfontdb.lua58
1 files changed, 9 insertions, 49 deletions
diff --git a/mkluatexfontdb.lua b/mkluatexfontdb.lua
index 98db095..dc46ac0 100755
--- a/mkluatexfontdb.lua
+++ b/mkluatexfontdb.lua
@@ -18,11 +18,6 @@ local version = '1.07' -- same version number as luaotfload
local names = fonts.names
--- the directory in which the database will be saved, can be overwritten
-local output_directory = names.path.localdir
-
-local log = logs.report
-
local function help_msg()
texio.write(string.format([[
Usage: %s [OPTION]...
@@ -30,14 +25,11 @@ Usage: %s [OPTION]...
Rebuild the LuaTeX font database.
Valid options:
- -d --database-dir=DIRECTORY install the database in the specified directory
-f --force force re-indexing all fonts
-q --quiet don't output anything
-v --verbose=LEVEL be more verbose (print the searched directories)
-vv print the loaded fonts
-vvv print all steps of directory searching
- --sys install the database system-wide
- (default is only for the current user)
-V --version print version and exit
-h --help print this message
@@ -60,9 +52,10 @@ the list. For example (using a bash shell),
export OSFONTDIR='/path/to/other/fonts:/Users/will/Library/Fonts:...'
-The output database file is named otfl-fonts.lua. By default it is placed
-in $TEXMFVAR/luatex-cache/generic/names."
-]], name))
+The output database file is named otfl-fonts.lua and is placed under:
+
+ %s"
+]], name, names.path.localdir))
end
local function version_msg()
@@ -76,16 +69,14 @@ Here we fill cmdargs with the good values, and then analyze it.
--]]
local long_opts = {
- ['database-dir'] = "d",
force = "f",
quiet = "q",
help = "h",
- sys = 0 ,
verbose = 1 ,
version = "V",
}
-local short_opts = "d:fqpvVh"
+local short_opts = "fqpvVh"
local force_reload = nil
@@ -107,50 +98,19 @@ local function process_cmdline()
elseif v == "h" then
help_msg()
os.exit(0)
- elseif v == "d" then
- output_directory = optarg [i]
elseif v == "f" then
force_reload = 1
- elseif v == "sys" then
- output_directory = names.path.systemdir
end
end
- if string.match(arg[0], '-sys') then
- output_directory = names.path.systemdir
- end
- output_directory = fonts.path_normalize(output_directory)
names.set_log_level(log_level)
end
-process_cmdline()
-
local function generate(force)
- local savepath = output_directory
- if not lfs.isdir(savepath) then
- log("creating directory %s", savepath)
- dir.mkdirs(savepath)
- if not lfs.isdir(savepath) then
- texio.write_nl(string.format("Error: cannot create directory '%s', exiting.\n", savepath))
- os.exit(1)
- end
- end
- savepath = file.join(savepath, names.path.basename)
- local fh = io.open(savepath, 'a+')
- if not fh then
- texio.write_nl(string.format("Error: cannot write file '%s', exiting.\n", savepath))
- os.exit(1)
- end
- fh:close()
- local fontnames
- if not force_reload and file.isreadable(savepath) then
- fontnames = dofile(savepath)
- else
- fontnames = nil
- end
+ local fontnames, saved
fontnames = names.update(fontnames, force)
- log("%s fonts in the database", #fontnames.mappings)
- table.tofile(savepath, fontnames, true)
- log("saved font names database in %s\n", savepath)
+ logs.report("%s fonts in the database", #fontnames.mappings)
+ saved = names.save(fontnames)
end
+process_cmdline()
generate(force_reload)