diff options
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) | 
