From 13aaea72534980f9d3a5448dc46cfff1f7c91404 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Wed, 11 Apr 2018 21:05:48 +0000 Subject: lc doc file name git-svn-id: svn://tug.org/texlive/trunk@47448 c570f23f-e606-0410-a88d-b1316a301751 --- Master/tlpkg/doc/json-formats.txt | 157 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 157 insertions(+) create mode 100644 Master/tlpkg/doc/json-formats.txt (limited to 'Master/tlpkg/doc/json-formats.txt') diff --git a/Master/tlpkg/doc/json-formats.txt b/Master/tlpkg/doc/json-formats.txt new file mode 100644 index 00000000000..b44966bacf4 --- /dev/null +++ b/Master/tlpkg/doc/json-formats.txt @@ -0,0 +1,157 @@ +$Id$ +(This file public domain.) + +JSON formats for the various outputs of tlmgr +============================================= + +Fields guaranteed to be present are marked with a * + +TLPOBJ +------ +JSON object with key/values according to the underlying structure with a few +exception (docfiles and docfiledata are merged). Details: + +* String type: + *name, shortdesc, longdesc, *category, catalogue, containerchecksum, + srccontainerchecksum, doccontainerchecksum + Example: "name": "12many" + +* Number type: + *revision, runsize, docsize, srcsize, containersize, srccontainersize, doccontainersize + Example: "revision": 12345 + +* Boolean type: + available, installed, relocated + Example: "relocated": false + +* Array type (with the sub-type in parenthesis): + - of String type: runfiles, srcfiles, executes, depends, postactions + Example: "runfiles": [ "texmf-dist/...", "texmf-dist/...file2" ] + - of Object type: + . docfiles: keys: *file, language, details (all Strings) + Example: + [ { "file": "docfile1", "lang": "en" }, { "file": "docfile2", "detail": "readme file" } ] + +* Object type: + - binfiles: keys are architecture names, values are arrays of strings (list of binfiles) + Example: { "x86_64-linux": [ "binfile1", "binfile2", ... ], "win32": [ "binfile3" ] } + - binsize: keys are architecture names, values are numbers + Example: { "x86_64-linux": 1233, "win32": 333 } + - cataloguedata: keys are topics, version, license, ctan, date, related (all strings) + Example: { "topics": "graphic", "version": "1.23" } + + +Note: A minimal TLPOBJ might look like +{ + "name": "minimal", + "category": "Package", + "revision": 12345 +} + + + +TLPOBJINFO +---------- +This JSON format is dumped on tlmgr info --data json and is slightly different +format compared to TLPOBJ above: + +Removed fields: revision +Added fields: +- Number type: lrev, rrev -- local and remote revision of the package +- Boolean type: available (available at repository), installed + + +TLPDBSINGLE +----------- +JSON object with the following fields: +* Object type: + - options: see TLOPTION below + - settings: see TLSETTING below + - configs: keys are the names of %TLConfig::TLPDBConfigs, that is + . Boolean type: container_split_src_files, container_split_doc_files + . String type: container_format, minrelease, release +* Array type: + - tlpkgs: JSON array of TLPOBJs in JSON format + + +TLPDB +----- +This format is used when dumping tlpdb, local or remote +JSON object with the following fields: +keys are tags, values are tlpdb in TLPDBSINGLE format +Example: +{ + "main": { + "options": {...}, + "tlpkgs": [...] + }, + "tlcontrib": { + "option": {...}, + "tlpkgs": [...] + } +} + +TLBACKUP +-------- +This format is used when dumping available backups via the +tlmgr restore action. +JSON array of JSON objects, one per available backup. +Each backup has keys: name, rev, date (all strings). +Example: +[ + { + "date" : "2017-10-30 11:04", + "name" : "uplatex", + "rev" : "45414" + }, + { + "date" : "2017-09-28 10:50", + "name" : "uplatex", + "rev" : "45141" + } +] + + +TLPAPER +------- +array of objects, each one having three keys: program, file, options. +`program' gives the program name, `file' the place where the configuration +has been found, and `options' is an array of strings with the first +one being the currently selected paper. +Example for one element of the array: + { + "options" : [ + "a4", + "letter" + ], + "file" : "/usr/local/texlive/2017/texmf-config/tex/generic/config/pdftexconfig.tex", + "program" : "pdftex" + } + + +TLOPTION / TLSETTING +-------------------- +each option/setting is an object with the following keys, values +are all strings(!) +for TLOPTIONS: + name, tlmgrname, description, format, default, value (optional) +for TLSETTING: + name, description, format, value (optional) +Example TLOPTIONS: + { + "format" : "b", + "description" : "Install source files", + "tlmgrname" : "srcfiles", + "value" : "1", + "default" : "1", + "name" : "install_srcfiles" + }, +Example TLSETTING + { + "type" : "b", + "description" : "This tree acts as user tree", + "name" : "usertree" + }, + + + -- cgit v1.2.3