diff options
author | Khaled Hosny <khaledhosny@eglug.org> | 2010-11-12 07:05:22 +0200 |
---|---|---|
committer | Khaled Hosny <khaledhosny@eglug.org> | 2010-11-12 07:17:06 +0200 |
commit | 5868b9d15ebca57f7ead09140e139dbec798e1ce (patch) | |
tree | 4e672c28170c72db21bae5d666ff950bca52564c /mkluatexfontdb.lua | |
parent | db19f6314830be14197c947987532109fd7b56b1 (diff) | |
download | luaotfload-5868b9d15ebca57f7ead09140e139dbec798e1ce.tar.gz |
Remove --database-dir and --sys options
* --database-dir is useless anyway since we don't support loading names
database from arbitrary path.
* --sys (and mkluatexfontdb-sys) are dangerous since we will load user
specific fonts (in ~/.fonts for example) which can not be loaded by
other users (can be security concern as well). If there is real need,
we should then implement it properly.
+ some clean up and less code duplication in mkluatexfontdb.
Diffstat (limited to 'mkluatexfontdb.lua')
-rwxr-xr-x | mkluatexfontdb.lua | 58 |
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) |